過早的優化是萬惡之源--Donald Knuth
算法
時間,質量,成本,三選二。(Project Triangle)
編程
增量式開發(incremental development)
瀏覽器
迭代式開發,瀑布式開發服務器
大爆炸集成方式(big bang integration)網絡
wiki(Interative and incremental development)性能
優化的目的是但願下降程序的總體開銷。
測試
分析應用程序和分析算法密切相關。
優化
在執行時間上有3條錯誤軸線,避免與錯誤軸線相交的方法:減小每次迭代的開銷,減小迭代的次數,從新設計應用程序。
動畫
循環嵌套越多,可優化的選擇越少。ui
必須正確地設計程序。程序不符合要求,運行速度很快也沒有意義。
測試Web應用時儘量模仿真實的用戶環境,低端機器和低速網絡來測試。
重構代碼能明顯下降複雜性。
依據YSlow規則重構代碼 http://developer.yahoo.com/yslow/
Ajax實現方式:發送數據包到服務端(一般是JSON文本),服務端返回另外一個數據包(JSON編碼)來響應,最後JavaScript用這些數據來更新瀏覽器的顯示。
想經過Ajax方法對性能有積極影響,採起正確地分工相當重要。
數據包應該儘量小。
常見的錯誤是把全部應用數據都發給瀏覽器,這會再次引入Ajax本應避免的延遲問題。這類錯誤也會增長瀏覽器須要處理的數據量,從而更加下降性能。
使用Ajax庫(如:http://developer.yahoo.com/yui/ )
運行程序最大開銷每每是DOM而非JavaScript。
程序設計者趨向於在Ajax中添加酷炫特效。
使用不當時,這些酷炫特效會因爲分散用戶注意力或強迫用戶等待動畫播放完畢從而下降他們的生產效率。
誤用特效也會致使沒必要要的DOM操做,從而帶來巨大開銷。
酷炫特效只在確實能改善用戶體驗時才能使用。
設計瀏覽器能勝任的事情。
一般狀況下瓶頸不是JavaScript而是DOM。
感受必需要重構腳本時,首先要評估。咱們對於程序的真正開銷的直覺每每是錯的。只有經過評估,纔有把握對性能產生的積極影響。
一切都是權衡。不要浪費時間在那些消耗不大的代碼上。
瀏覽器一般在運行JavaScript上花費的時間不多,絕大部分時間消耗在DOM上。
爲質量編程。簡潔、易懂且條理分明的代碼更易於正確理解、維護和優化。
善加利用Ajax技術能使應用程序運行得更快,用好它關鍵是在瀏覽器和服務器之間創建平衡。