High Performance JavaScript(高效能JavaScript)讀書筆記分析

來源:互聯網
上載者:User

第一章:載入和執行

瀏覽器的JavaScript的引擎是編譯器層的最佳化;
當瀏覽器執行JavaScript代碼時,不能同時做其他任何事情(單一進程),意味著<script>標籤每次出現都霸道地讓頁面等帶指令碼的解析和執行(每個檔案必須等到前一個檔案下載並執行完成才會開始下載),所以頭部的JS和CSS用來渲染頁面,互動行為(幾乎所有)的JS放在<body>底部;
主流瀏覽器都允許並行下載JS。
減少外鏈指令碼數量將會改善效能(合并JS)
任何網站都可以使用一個把制定檔案合并處理後的URL來擷取任意數量的檔案。
defer屬性可延遲指令碼(只有IE4 和FF3.5 支援)
第二章:資料訪問

JavaScript中有四種基本的資料存取位置: 直接量,變數,數組元素(以數字作為索引),對象成員(以字元床作為索引)。
訪問直接量和局部變數的速度最快,相反,訪問數組元素和對象成員相對較慢。
屬性或方法在原型鏈中的位置越深,訪問它的速度也越慢。
通常來說,可以通過吧常用的對象,數組元素,跨越變數儲存在局部變數中來改善JavaScript效能。
第三章:DOM編程

DOM操作在webkit核心的瀏覽器速度快,其他的瀏覽器innerHTML執行快。
訪問和操作DOM是現代WEB應用的重要部分。但每次穿越連結ECMAScript和DOM兩個島嶼之間的橋樑都會被收取‘過橋費'.
要留意重回和重排。
在IE中:hover會降低響應速度。
第四章:演算法和流程式控制制

避免使用for-in迴圈,除非需要遍曆一個屬性數量位置的對象。
瞭解棧溢出錯誤。
第五章:字串和Regex

回溯既是Regex匹配功能的基本組成部分,也是Regex的低效之源。
第六章:快速響應的使用者介面

任何JavaScript任務都不應當執行超過100毫秒。
Web workers是新版瀏覽器支援的特性。
沒有什麼JavaScript代碼會重要到可以影響使用者體驗的程度.
第七章:Ajax

JSON是輕量級的資料格式,解析速度快。
減少請求數,可通過合并JS和CSS,還有IMG。
縮短頁面載入時間,頁面主要內容載入完成後,用Ajax擷取那些次要的檔案。
第八章:編程實踐

大多數的時候,沒必要使用eval()和Function(),因此最好避免使用它們。至於setTimeout()和setInterval(),建議傳入函數而不是字串來作為第一個參數。
在JavaScript中建立對象和數組的方法有多種,但使用對象和數組直接量是最快的方式(對象屬性和數組項越多,使用直接量的好處就越明顯)。
不要重複工作:消極式載入;條件預先載入.
多使用原生方法,因為更快。
第九章:構建並部署高效能JavaScript應用

PV(page view)即頁面瀏覽量或點擊量。
減少頁面渲染所需的HTTP請求數,特別是針對那些首次訪問網站的使用者。
JavaScript壓縮。
JavaScript緩衝。
使用內容分髮網絡(CDN)
第十章主要介紹工具:如firebug,YSlow,和一些效能分析.

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.