国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

代碼層面瀏覽器優化

fai1017 / 2096人閱讀

摘要:當出現以下情況時,建議將數據放入局部變量對任何對象屬性的訪問超過次對任何數組成員的訪問次數超過次另外,還應當盡可能的減少對對象以及數組深度查找。如上面的選擇符,瀏覽器必須遍歷查找每一個標簽的祖先節點,效率并不像之前想象的那樣高。

1、 減少dom操作:類數組是實時更新的
類數組集合, 在腳本中 document.images、document.forms、getElementsByTagName()返回的都是HTMLCollection類型的集合,常見的類數組還有arguments對象和DOM方法的返回結果。對這些類數組集合操作是盡量轉為數組類型再對其進行操作。
Array.prototype.slice.call(arrayLike)
如果不轉化為數組則應該盡量在對類數組for循環時對其如length屬性進行緩存成局部變量,避免每次循環都訪問一次。

2、 避免大量的元素重繪(樣式改變)、重排(布局改變)
注:重排一定會重繪。
具體實現:①樣式合并,如ele.style.borderLeft = "1px";
ele.style.borderRight = "2px"; 改成
ele.style.padding = "5px";

ele.style.cssText = "border-left: 1px; border-right: 2px; padding: 5px;";

?
②將需要多次重排的元素,position屬性設為absolute或fixed,這樣此元素就脫離了文檔流,它的變化不會影響到其他元素。例如有動畫效果的元素就最好設置為絕對定位。

③在內存中多次操作節點,完成后再添加到文檔中去(可使用fragment元素)。例如要異步獲取表格數據,渲染到頁面??梢韵热〉脭祿笤趦却嬷袠嫿ㄕ麄€表格的html片段,再一次性添加到文檔中去,而不是循環添加每一行。(jsRender,arttemple渲染模板的產生)。

3、 每次 eval 或Function 構造函數作用于字符串表示的源代碼時,腳本引擎都需要將源代碼轉換成可執行代碼。這是很消耗資源的操作 —— 通常比簡單的函數調用慢 100倍以上。 使用 eval和 Function也不利于Javascript 壓縮工具執行壓縮。

4、 減少作用域鏈查找
前文談到了作用域鏈查找問題,這一點在循環中是尤其需要注意的問題。如果在循環中需要訪問非本作用域下的變量時請在遍歷之前用局部變量緩存該變量,并在遍歷結束后再重寫那個變量,這一點對全局變量尤其重要,因為全局變量處于作用域鏈的最頂端,訪問時的查找次數是最多的。

5 、數據訪問
  Javascript中的數據訪問包括直接量 (字符串、正則表達式 )、變量、對象屬性以及數組,其中對直接量和局部變量的訪問是最快的,對對象屬性以及數組的訪問需要更大的開銷。當出現以下情況時,建議將數據放入局部變量:
  a. 對任何對象屬性的訪問超過 1次
  b. 對任何數組成員的訪問次數超過 1次
  另外,還應當盡可能的減少對對象以及數組深度查找。
6、 字符串拼接
在 Javascript中使用”+”號來拼接字符串效率是比較低的,因為每次運行都會開辟新的內存并生成新的字符串變量,然后將拼接結果賦值給新變量。與之相比更為高效的做法是使用數組的 join方法,即將需要拼接的字符串放在數組中最后調用其 join方法得到結果。不過由于使用數組也有一定的開銷,因此當需要拼接的字符串較多的時候可以考慮用此方法。

7、CSS選擇符優化
在大多數人的觀念中,都覺得瀏覽器對 CSS選擇符的解析式從左往右進行的,例如 #toc A { color: #444; }這樣一個選擇符,如果是從右往左解析則效率會很高,因為第一個 ID選擇基本上就把查找的范圍限定了,但實際上瀏覽器對選擇符的解析是從右往左進行的。如上面的選擇符,瀏覽器必須遍歷查找每一個 A標簽的祖先節點,效率并不像之前想象的那樣高。根據瀏覽器的這一行為特點,在寫選擇符的時候需要注意很多事項,有興趣的童鞋可以去了解一下。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/51097.html

相關文章

  • 代碼層面覽器優化

    摘要:當出現以下情況時,建議將數據放入局部變量對任何對象屬性的訪問超過次對任何數組成員的訪問次數超過次另外,還應當盡可能的減少對對象以及數組深度查找。如上面的選擇符,瀏覽器必須遍歷查找每一個標簽的祖先節點,效率并不像之前想象的那樣高。 1、 減少dom操作:類數組是實時更新的類數組集合, 在腳本中 document.images、document.forms、getElementsBy...

    Sanchi 評論0 收藏0
  • 代碼層面覽器優化

    摘要:當出現以下情況時,建議將數據放入局部變量對任何對象屬性的訪問超過次對任何數組成員的訪問次數超過次另外,還應當盡可能的減少對對象以及數組深度查找。如上面的選擇符,瀏覽器必須遍歷查找每一個標簽的祖先節點,效率并不像之前想象的那樣高。 1、 減少dom操作:類數組是實時更新的類數組集合, 在腳本中 document.images、document.forms、getElementsBy...

    libxd 評論0 收藏0
  • 說走就走的性能優化之旅

    摘要:雅虎規則熟悉網站優化的開發者應該都知道,只要提到網頁性能優化,就繞不開雅虎軍規。頁面加載前置,后置,首屏無關的不加載,圖片懶加載,精簡之類的,都是在網頁加載層面上的優化,可以算作請求都結束了之后做的東西。同時達到了最初的目的。 雅虎規則 熟悉網站優化的開發者應該都知道,只要提到網頁性能優化,就繞不開雅虎軍規。優化規則&&原文,仔細閱讀這些規則,可以總結到3個方面: Http層面上的優化...

    U2FsdGVkX1x 評論0 收藏0
  • 說走就走的性能優化之旅

    摘要:雅虎規則熟悉網站優化的開發者應該都知道,只要提到網頁性能優化,就繞不開雅虎軍規。頁面加載前置,后置,首屏無關的不加載,圖片懶加載,精簡之類的,都是在網頁加載層面上的優化,可以算作請求都結束了之后做的東西。同時達到了最初的目的。 雅虎規則 熟悉網站優化的開發者應該都知道,只要提到網頁性能優化,就繞不開雅虎軍規。優化規則&&原文,仔細閱讀這些規則,可以總結到3個方面: Http層面上的優化...

    waltr 評論0 收藏0
  • 說走就走的性能優化之旅

    摘要:雅虎規則熟悉網站優化的開發者應該都知道,只要提到網頁性能優化,就繞不開雅虎軍規。頁面加載前置,后置,首屏無關的不加載,圖片懶加載,精簡之類的,都是在網頁加載層面上的優化,可以算作請求都結束了之后做的東西。同時達到了最初的目的。 雅虎規則 熟悉網站優化的開發者應該都知道,只要提到網頁性能優化,就繞不開雅虎軍規。優化規則&&原文,仔細閱讀這些規則,可以總結到3個方面: Http層面上的優化...

    Galence 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<