当前位置:  开发笔记 > 编程语言 > 正文

可见性是否影响DOM操作性能?

如何解决《可见性是否影响DOM操作性能?》经验,为你挑选了1个好方法。

IE7/Windows XP

我的页面中有第三方组件,每次调整浏览器窗口大小时都会执行大量DOM操作以调整自身.

不幸的是,我几乎无法控制它在内部的作用,而且我已经尽可能地优化了其他所有内容(例如回调和事件处理程序).我不能通过设置display:none来使组件脱离流程,因为如果我这样做,它将无法自我测量.

通常,在调整大小期间将容器的可见性设置为不可见有助于提高DOM呈现性能吗?



1> Ben Blank..:

警告:我没有用IE7对此进行过专门测试,但根据我对DOM操作模型的了解,我有理由相信.

更改CSS属性(无论是display: none或者visibility: hidden你有什么)都不会影响我使用的任何浏览器的任何版本的DOM操作的性能.提高DOM操作速度的主要方法是从文档树中删除您将要使用的节点,执行操作并重新添加它们.这包括跟踪其后续的兄弟节点,如果有的话(用于insertBefore),如果您正在处理散布在文档周围的节点,这可能会变得复杂.

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

推荐阅读
帆侮听我悄悄说星星
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有