成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

代碼層面瀏覽器優(yōu)化

fai1017 / 2103人閱讀

摘要:當(dāng)出現(xiàn)以下情況時(shí),建議將數(shù)據(jù)放入局部變量對(duì)任何對(duì)象屬性的訪問超過次對(duì)任何數(shù)組成員的訪問次數(shù)超過次另外,還應(yīng)當(dāng)盡可能的減少對(duì)對(duì)象以及數(shù)組深度查找。如上面的選擇符,瀏覽器必須遍歷查找每一個(gè)標(biāo)簽的祖先節(jié)點(diǎn),效率并不像之前想象的那樣高。

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

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

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

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

③在內(nèi)存中多次操作節(jié)點(diǎn),完成后再添加到文檔中去(可使用fragment元素)。例如要異步獲取表格數(shù)據(jù),渲染到頁面??梢韵热〉脭?shù)據(jù)后在內(nèi)存中構(gòu)建整個(gè)表格的html片段,再一次性添加到文檔中去,而不是循環(huán)添加每一行。(jsRender,arttemple渲染模板的產(chǎn)生)。

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

4、 減少作用域鏈查找
前文談到了作用域鏈查找問題,這一點(diǎn)在循環(huán)中是尤其需要注意的問題。如果在循環(huán)中需要訪問非本作用域下的變量時(shí)請(qǐng)?jiān)诒闅v之前用局部變量緩存該變量,并在遍歷結(jié)束后再重寫那個(gè)變量,這一點(diǎn)對(duì)全局變量尤其重要,因?yàn)槿肿兞刻幱谧饔糜蜴湹淖铐敹耍L問時(shí)的查找次數(shù)是最多的。

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

7、CSS選擇符優(yōu)化
在大多數(shù)人的觀念中,都覺得瀏覽器對(duì) CSS選擇符的解析式從左往右進(jìn)行的,例如 #toc A { color: #444; }這樣一個(gè)選擇符,如果是從右往左解析則效率會(huì)很高,因?yàn)榈谝粋€(gè) ID選擇基本上就把查找的范圍限定了,但實(shí)際上瀏覽器對(duì)選擇符的解析是從右往左進(jìn)行的。如上面的選擇符,瀏覽器必須遍歷查找每一個(gè) A標(biāo)簽的祖先節(jié)點(diǎn),效率并不像之前想象的那樣高。根據(jù)瀏覽器的這一行為特點(diǎn),在寫選擇符的時(shí)候需要注意很多事項(xiàng),有興趣的童鞋可以去了解一下。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/51097.html

相關(guān)文章

  • 代碼層面覽器優(yōu)化

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

    Sanchi 評(píng)論0 收藏0
  • 代碼層面覽器優(yōu)化

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

    libxd 評(píng)論0 收藏0
  • 說走就走的性能優(yōu)化之旅

    摘要:雅虎規(guī)則熟悉網(wǎng)站優(yōu)化的開發(fā)者應(yīng)該都知道,只要提到網(wǎng)頁性能優(yōu)化,就繞不開雅虎軍規(guī)。頁面加載前置,后置,首屏無關(guān)的不加載,圖片懶加載,精簡之類的,都是在網(wǎng)頁加載層面上的優(yōu)化,可以算作請(qǐng)求都結(jié)束了之后做的東西。同時(shí)達(dá)到了最初的目的。 雅虎規(guī)則 熟悉網(wǎng)站優(yōu)化的開發(fā)者應(yīng)該都知道,只要提到網(wǎng)頁性能優(yōu)化,就繞不開雅虎軍規(guī)。優(yōu)化規(guī)則&&原文,仔細(xì)閱讀這些規(guī)則,可以總結(jié)到3個(gè)方面: Http層面上的優(yōu)化...

    U2FsdGVkX1x 評(píng)論0 收藏0
  • 說走就走的性能優(yōu)化之旅

    摘要:雅虎規(guī)則熟悉網(wǎng)站優(yōu)化的開發(fā)者應(yīng)該都知道,只要提到網(wǎng)頁性能優(yōu)化,就繞不開雅虎軍規(guī)。頁面加載前置,后置,首屏無關(guān)的不加載,圖片懶加載,精簡之類的,都是在網(wǎng)頁加載層面上的優(yōu)化,可以算作請(qǐng)求都結(jié)束了之后做的東西。同時(shí)達(dá)到了最初的目的。 雅虎規(guī)則 熟悉網(wǎng)站優(yōu)化的開發(fā)者應(yīng)該都知道,只要提到網(wǎng)頁性能優(yōu)化,就繞不開雅虎軍規(guī)。優(yōu)化規(guī)則&&原文,仔細(xì)閱讀這些規(guī)則,可以總結(jié)到3個(gè)方面: Http層面上的優(yōu)化...

    waltr 評(píng)論0 收藏0
  • 說走就走的性能優(yōu)化之旅

    摘要:雅虎規(guī)則熟悉網(wǎng)站優(yōu)化的開發(fā)者應(yīng)該都知道,只要提到網(wǎng)頁性能優(yōu)化,就繞不開雅虎軍規(guī)。頁面加載前置,后置,首屏無關(guān)的不加載,圖片懶加載,精簡之類的,都是在網(wǎng)頁加載層面上的優(yōu)化,可以算作請(qǐng)求都結(jié)束了之后做的東西。同時(shí)達(dá)到了最初的目的。 雅虎規(guī)則 熟悉網(wǎng)站優(yōu)化的開發(fā)者應(yīng)該都知道,只要提到網(wǎng)頁性能優(yōu)化,就繞不開雅虎軍規(guī)。優(yōu)化規(guī)則&&原文,仔細(xì)閱讀這些規(guī)則,可以總結(jié)到3個(gè)方面: Http層面上的優(yōu)化...

    Galence 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<