色尼玛亚洲综合影院,亚洲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

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

  需求:

 ?。╡mu注:原文作者寫到這里的時候腦子顯然短路了一下,把后面的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操作優化,轉載需保留來源!

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

主站蜘蛛池模板: 麦盖提县| 皋兰县| 平塘县| 邹城市| 甘肃省| 米泉市| 交口县| 江城| 平遥县| 专栏| 临夏县| 磐石市| 马关县| 张家口市| 英吉沙县| 安乡县| 莒南县| 延安市| 漳州市| 东乡族自治县| 凤山县| 水富县| 桐梓县| 仁化县| 琼海市| 龙井市| 瑞丽市| 松滋市| 德惠市| 栾城县| 年辖:市辖区| 双桥区| 连城县| 墨玉县| 新邵县| 绥阳县| 海原县| 同德县| 浮山县| 钟祥市| 襄城县|