色尼玛亚洲综合影院,亚洲3atv精品一区二区三区,麻豆freexxxx性91精品,欧美在线91

加速JavaScript:DOM操作優化

  原文:《Speeding up JavaScript: Working with the DOM》

  作者: KeeKim Heng, Google Web Developer

  在我們開發互聯網應用(RIA)時,我們經常寫一些JavaScript腳本來修改或者增加頁面元素,這些工作最終是DOM——或者說文檔對象模型——來完成的,而我們的實現方式會影響到應用的響應速度。

  DOM操作會導致瀏覽器重解析(reflow),這是瀏覽器的一個決定頁面元素如何展現的計算過程。直接修改DOM,修改元素的CSS樣式,修改瀏覽器的窗口大小,都會觸發重解析。讀取元素的布局屬性比如offsetHeight或者offsetWidth也會觸發重解析。重解析需要花費計算時間,因此重解析觸發的越少,應用就會越快。

  DOM操作通常要不就是修改已經存在的頁面上的元素,要不就是創建新的頁面元素。下面的4種優化方案覆蓋了修改和創建DOM節點兩種方式,幫助你減少觸發瀏覽器重解析的次數。

  方案一:通過CSS類名切換來修改DOM

  這個方案讓我們可以一次性修改一個元素和它的子元素的多個樣式屬性而只觸發一次重解析。

  需求:

  (emu注:原文作者寫到這里的時候腦子顯然短路了一下,把后面的Out-of-the-flow DOM Manipulation模式要解決的問題給擺到這里來了,不過從示范代碼中很容易明白作者真正想描述的問題,因此emu就不照翻原文了)

  我們現在需要寫一個函數來修改一個超鏈接的幾個樣式規則。要實現很簡單,把這幾個規則對應的屬性逐一改了就好了。但是帶來的問題是,每修改一個樣式屬性,都會導致一次頁面的重解析。

 function selectAnchor(element) {  
element.style.fontWeight
= 'bold';
element.style.textDecoration
= 'none';
element.style.color
= '#000';
}

it知識庫加速JavaScript:DOM操作優化,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 周口市| 芜湖县| 平塘县| 弋阳县| 边坝县| 安新县| 湖北省| 鄂伦春自治旗| 漳州市| 台东市| 交城县| 来宾市| 扎赉特旗| 金山区| 星子县| 西城区| 宜良县| 读书| 揭阳市| 南皮县| 上杭县| 永德县| 大邑县| 筠连县| 吉首市| 五华县| 广汉市| 池州市| 宜宾县| 翼城县| 疏勒县| 凤山市| 泸定县| 额敏县| 岐山县| 博客| 永修县| 紫云| 阿城市| 怀安县| 淳化县|