色尼玛亚洲综合影院,亚洲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操作優化,轉載需保留來源!

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

主站蜘蛛池模板: 山丹县| 秀山| 赤城县| 乐亭县| 永清县| 华容县| 漯河市| 滨海县| 浦城县| 道真| 百色市| 日照市| 枝江市| 汶上县| 巍山| 南康市| 梓潼县| 兴义市| 乌海市| 昌邑市| 武夷山市| 漳平市| 济宁市| 三台县| 页游| 东丰县| 汾阳市| 崇信县| 鹿泉市| 门头沟区| 克拉玛依市| 屏东市| 长沙县| 澜沧| 永靖县| 金华市| 阳西县| 渝北区| 安乡县| 元阳县| 永福县|