如何减少浏览器的reflow和repaint

 更新时间:2015年02月26日 09:52:16   投稿:hebedich  
本文主要是结合自己的一些项目经验,给大家提出了几点减少浏览器reflow和repaint的方法和注意事项,希望对大家能有所帮助。

1.避免在document上直接进行频繁的DOM操作,如果确实需要可以采用off-document的方式进行,具体的方法包括但不完全包括以下几种:

(1). 先将元素从document中删除,完成修改后再把元素放回原来的位置
(2). 将元素的display设置为”none”,完成修改后再把display修改为原来的值
(3). 如果需要创建多个DOM节点,可以使用DocumentFragment创建完后一次性的加入document

2.集中修改样式

(1). 尽可能少的修改元素style上的属性
(2). 尽量通过修改className来修改样式
(3). 通过cssText属性来设置样式值

3. 缓存Layout属性值

对于Layout属性中非引用类型的值(数字型),如果需要多次访问则可以在一次访问时先存储到局部变量中,之后都使用局部变量,这样可以避免每次读取属性时造成浏览器的渲染。
var width = el.offsetWidth; var scrollLeft = el.scrollLeft;

4.设置元素的position为absolute或fixed

在元素的position为static和relative时,元素处于DOM树结构当中,当对元素的某个操作需要重新渲染时,浏览器会渲染整个页面。将元素的position设置为absolute和fixed可以使元素从DOM树结构中脱离出来独立的存在,而浏览器在需要渲染时只需要渲染该元素以及位于该元素下方的元素,从而在某种程度上缩短浏览器渲染时间,这在当今越来越多的Javascript动画方面尤其值得考虑。

以上就是个人总结的一些关于减少浏览器reflow和repaint的事项,希望大家能够喜欢。

相关文章

  • dwr spring的集成实现代码

    dwr spring的集成实现代码

    需正确使用new和spring,注意两者的区别
    2009-03-03
  • js局部刷新页面时间具体实现

    js局部刷新页面时间具体实现

    这篇文章介绍了js局部刷新页面时间具体实现,需要的朋友可以参考一下
    2013-07-07
  • 关于微信中a链接无法跳转问题

    关于微信中a链接无法跳转问题

    微信页面开发时,各个主页之间的跳转,完全是通过a链接进行的,但是来回跳转几次,再次从其他主页面跳回首页的时候,微信头部出现了跳转加载进度条,但是就是不跳转,也没有任何反应,怎么回事呢?下面小编给大家解答下
    2016-08-08
  • 悄悄用脚本检查你访问过哪些网站的代码

    悄悄用脚本检查你访问过哪些网站的代码

    YouPorn是YouTube的成人自拍版,Alexa排名61。如果你登陆YouPorn主页,它会悄悄用脚本检查你访问过哪些色情网站。
    2010-12-12
  • js实现删除li标签一行内容

    js实现删除li标签一行内容

    这篇文章主要为大家详细介绍了js实现删除li标签一行内容,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-04-04
  • JS实现仿FLASH效果的竖排导航代码

    JS实现仿FLASH效果的竖排导航代码

    这篇文章主要介绍了JS实现仿FLASH效果的竖排导航代码,涉及JavaScript基于定时函数动态设置页面元素样式的技巧,具有FLASH变换效果,需要的朋友可以参考下
    2015-09-09
  • JS中的forEach、$.each、map方法推荐

    JS中的forEach、$.each、map方法推荐

    下面小编就为大家带来一篇JS中的forEach、$.each、map方法推荐。小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-04-04
  • JavaScript实现表格动态变色

    JavaScript实现表格动态变色

    这篇文章主要为大家详细介绍了JavaScript实现表格动态变色,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09
  • 使用Vue3实现一个Upload组件的示例代码

    使用Vue3实现一个Upload组件的示例代码

    这篇文章主要介绍了使用Vue3实现一个Upload组件的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-05-05
  • 前端面试运行npm run xxx发生过程原理解析

    前端面试运行npm run xxx发生过程原理解析

    这篇文章主要为大家介绍了前端面试运行npm run xxx过程原理解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-07-07

最新评论