可见性会影响 DOM 操作性能吗?

2023-12-22

IE7/Windows XP

我的页面中有一个第三方组件,它会在每次调整浏览器窗口大小时进行大量 DOM 操作来调整自身。

不幸的是,我几乎无法控制它的内部功能,并且我已经尽可能地优化了其他所有内容(例如回调和事件处理程序)。我无法通过设置 display:none 将组件从流程中取出,因为如果我这样做,它会无法测量自身。

一般来说,在调整大小期间将容器的可见性设置为不可见是否有助于提高 DOM 渲染性能?


警告:我还没有专门用 IE7 测试过这一点,但根据我对其 DOM 操作模型的了解,我相当有信心。

更改 CSS 属性(是否display: none or visibility: hidden或者你有什么)不会影响我使用过的任何浏览器的任何版本中 DOM 操作的性能。提高 DOM 操作速度的主要方法是从文档树中删除要使用的节点,执行操作,然后将它们添加回来。这涉及跟踪它们的后续兄弟节点(如果有) (与使用insertBefore),如果您使用分散在文档中的节点,这可能会变得复杂。

我在一次执行大量 DOM 操作时见过的一种技术是获取一个列表body元素的子节点,删除它们,执行操作(无论它们位于文档树中的何处),然后重新附加主体的子节点。根据您的 DOM 操作需要多长时间(这本身部分取决于访问者计算机的速度!),这可能会产生明显的闪烁。这就是为什么通过 AJAX 操作内容的网站通常会用“旋转器”或加载屏幕替换任何临时删除的内容。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

可见性会影响 DOM 操作性能吗? 的相关文章

随机推荐