• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

jq设置css会影响性能吗?

jquery 搞代码 4年前 (2021-12-27) 50次浏览 已收录 0个评论

jquery为我们提供了强大的dom操作方法,其中css()方法可以用来设置元素的样式,那么你有考虑过css方法会造成什么性能问题吗?一起来看看吧。


jq设置css会影响性能吗?

jquery设置元素的css样式时,部分css样式改变不会影响性能,如transforms opacity。有些css样式的改变会影响性能,如width、height、修改节点的位置、删除节点等。

这是由浏览器的渲染机制导致的。dom结构的改变会导致浏览器重排和重绘。

  • 重排是指元素的位置或者大小发生了改变,浏览器需要重新去计算渲染树,新的渲染树建立之后,浏览器会重来源gao($daima.com搞@代@#码网新绘制所影响的元素。

  • 重绘是指元素的样式发生了变化,而大小和尺寸没有发生改变。

(相关课程推荐:jQuery教程)

什么情况下会触发重排?

1)页面渲染初始化时;(这个无法避免)

2)浏览器窗口改变尺寸;

3)元素尺寸改变时;

4)元素位置改变时;

5)元素内容改变时;

6)添加或删除可见的DOM 元素时。

使用jquery的css方法前,可以试试下面的优化方法,减少性能损失:

1)将多次改变样式属性的操作合并成一次操作,减少DOM访问。

2)如果要批量添加DOM,可以先让元素脱离文档流,操作完后再带入文档流,这样只会触发一次重排。(fragment元素的应用)

3)将需要多次重排的元素,position属性设为absolute或fixed,这样此元素就脱离了文档流,它的变化不会影响到其他元素。例如有动画效果的元素就最好设置为绝对定位。

4)由于display属性为none的元素不在渲染树中,对隐藏的元素操作不会引发其他元素的重排。如果要对一个元素进行复杂的操作时,可以先隐藏它,操作完成后再显示。这样只在隐藏和显示时触发两次重排。

5)在内存中多次操作节点,完成后再添加到文档中去。例如要异步获取表格数据,渲染到页面。可以先取得数据后在内存中构建整个表格的html片段,再一次性添加到文档中去,而不是循环添加每一行。

本文来自jQuery答疑栏目,欢迎学习!

以上就是jq设置css会影响性能吗?的详细内容,更多请关注gaodaima搞代码网其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:jq设置css会影响性能吗?

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址