日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

提高网站的性能----回流与重绘

發布時間:2024/4/13 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 提高网站的性能----回流与重绘 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019獨角獸企業重金招聘Python工程師標準>>>

以前在寫網頁的時候很少關注到網站的性能,時間進入今天,一個網站不在是單純幾張圖片或者幾段文字,組成一個網站,今天的用戶更加注重網站體驗,所以寫一個頁面的時候網站的性能優化變得格外重要,作為一個前端的開發人員,一定的要對網站的每一個頁面做到最大性能優化,今天的學習了一下如果提高網站性能重要的知識:

回流與重繪

----------------------------------------讓你的網頁快點在快點-----------------------------------------------

html中的每個tag都是dom?樹中的1個節點,document(根節點)。

回流:

當視圖中的一部分(或全部)因為元素的規模尺寸,布局,隱藏等改變而需要重新構建。這就叫著回流(也可以叫做重新布局)

重繪:

當視圖中的有些元素需要更新屬性,而這些屬性只是影響元素的外觀,風格,而不會影響布局的,就叫著重繪

這里提到重要的一點:?回流一定會重繪,而重繪未必回流。

會產生回流或者重繪的操作:

1、添加、刪除元素(回流+重繪)

2、隱藏元素?display:none,(回流+重繪),visibility:hidden(重繪,不回流)

3、移動元素:改變top,left,或者移動元素到另外1個父元素中(重繪+回流)

4、對style的操作()

5、改變瀏覽器的大小(回流+重繪)

瀏覽器在處理回流和重繪的時候,會把所有的引起回流、重繪的操作放入一個隊列里面,一定數量或者時間間隔就會flush對象,這樣就會讓多次的回流、重繪變成一次回流重繪

減少回流、重繪

1.不要改變一個元素的樣式屬性,最后直接改變類名,類名是預先定義好的樣式,不是動態的,你要動態的改變一些樣式,可以使用字符串拼接形式進行改變

示例:

//?不好的寫法
var?left?=?1;var?top?=?1;
el.style.left?=?left?+?"px";
el.style.top??=?top??+?"px";//?比較好的寫法?
el.className?+=?"?className1";//?比較好的寫法?
el.style.cssText?+=?";?left:?"?+?left?+?"px;?top:?"?+?top?+?"px;";

2.讓要操作的元素的進行“離線處理”,

3.不要經常訪問會引起瀏覽器fiush隊列的屬性,如果確實要訪問,可以先對變量進行緩存,應聘哪的時候就可以直接讀取變量

示例:

//?別這樣寫,大哥
for(循環)?{
????el.style.left?=?el.offsetLeft?+?5?+?"px";
????el.style.top??=?el.offsetTop??+?5?+?"px";
}//?這樣寫好點
var?left?=?el.offsetLeft,top??=?el.offsetTop,s?=?el.style;for(循環)?{
????left?+=?10;
????top??+=?10;
????s.left?=?left?+?"px";
????s.top??=?top??+?"px";
}

4.一定要思考清除,操縱元素會影響到多少個節點,盡量減少對節點的影響,影響越多,就越耗費資源、

轉載于:https://my.oschina.net/u/1403169/blog/202440

總結

以上是生活随笔為你收集整理的提高网站的性能----回流与重绘的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。