如何減少瀏覽器的reflow和repaint
1.避免在document上直接進行頻繁的DOM操作,如果確實需要可以采用off-document的方式進行,具體的方法包括但不完全包括以下幾種:
(1). 先將元素從document中刪除,完成修改后再把元素放回原來的位置
(2). 將元素的display設置為”none”,完成修改后再把display修改為原來的值
(3). 如果需要創(chuàng)建多個DOM節(jié)點,可以使用DocumentFragment創(chuàng)建完后一次性的加入document
2.集中修改樣式
(1). 盡可能少的修改元素style上的屬性
(2). 盡量通過修改className來修改樣式
(3). 通過cssText屬性來設置樣式值
3. 緩存Layout屬性值
對于Layout屬性中非引用類型的值(數(shù)字型),如果需要多次訪問則可以在一次訪問時先存儲到局部變量中,之后都使用局部變量,這樣可以避免每次讀取屬性時造成瀏覽器的渲染。
var width = el.offsetWidth; var scrollLeft = el.scrollLeft;
4.設置元素的position為absolute或fixed
在元素的position為static和relative時,元素處于DOM樹結(jié)構當中,當對元素的某個操作需要重新渲染時,瀏覽器會渲染整個頁面。將元素的position設置為absolute和fixed可以使元素從DOM樹結(jié)構中脫離出來獨立的存在,而瀏覽器在需要渲染時只需要渲染該元素以及位于該元素下方的元素,從而在某種程度上縮短瀏覽器渲染時間,這在當今越來越多的Javascript動畫方面尤其值得考慮。
以上就是個人總結(jié)的一些關于減少瀏覽器reflow和repaint的事項,希望大家能夠喜歡。
相關文章
Javascript設計模式之觀察者模式的多個實現(xiàn)版本實例
這篇文章主要介紹了Javascript設計模式之觀察者模式的多個實現(xiàn)版本實例,本文給出3種實現(xiàn)版本代碼,同時給出了Jquery實現(xiàn)版本,需要的朋友可以參考下2015-03-03JS實現(xiàn)json對象數(shù)組按對象屬性排序操作示例
這篇文章主要介紹了JS實現(xiàn)json對象數(shù)組按對象屬性排序操作,涉及javascript使用sort方法針對json數(shù)組的遍歷與排序相關操作實現(xiàn)技巧,需要的朋友可以參考下2018-05-05?JavaScript+HarmonyOS?實現(xiàn)一個手繪板
這篇文章主要介紹了?JavaScript+HarmonyOS?實現(xiàn)一個手繪板,利用openHarmony內(nèi)置的API?cnavas組件實現(xiàn),具體詳細內(nèi)容需要的小伙伴可以參考一下2022-07-07uniapp微信小程序訂閱消息發(fā)送服務通知超詳細教程
在使用或開發(fā)小程序過程中,我們會發(fā)現(xiàn)消息通知是非常重要的一個環(huán)節(jié),下面這篇文章主要給大家介紹了關于uniapp微信小程序訂閱消息發(fā)送服務通知的相關資料,需要的朋友可以參考下2023-06-06layer.alert回調(diào)函數(shù)執(zhí)行關閉彈窗的實例
今天小編就為大家分享一篇layer.alert回調(diào)函數(shù)執(zhí)行關閉彈窗的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-09-09