performance - 通过删除已加载的 DOM 节点来提高性能?
问题描述
假设一个繁重的网站由大约 5000 个 dom 节点组成——但其中 20% 仅用于页面访问的有限时间。例如仅前 10 秒,然后将自动隐藏。删除这些节点将如何提高此页面在浏览器中的性能?
我知道如果页面有许多 dom 节点,则会影响网络效率和负载性能。如果元素与之交互或需要重新计算,它也会对运行时性能产生影响。我也知道潜在的内存性能影响,如果有可能需要搜索/遍历更长时间的一般查询选择器。
问题是:除此之外,实际上或理论上,删除这些 dom 节点(而不是仅仅隐藏它们)将如何提高页面的性能?
解决方案
这取决于具体的内容:一千个隐藏<br>
元素可能不会对任何东西产生可衡量的影响,而一千个document.createTextNode("foobar".repeat(10000000))
节点将占用 60 GB 内存,我想可以想出一个创造性的病态测试用例来强调其他子系统。
display: none
实际上,一千个节点和缺少它们之间可能不会有明显的差异。
但是你为什么不测量呢?
推荐阅读
- java - 在早期的 Android 中显示本周的 7 个日期
- azure - 使用 azure 数据工厂将 sftp 从远程服务器增量到 azure 的方法是什么
- regex - 正则表达式匹配字符串末尾不需要的字符
- android - 牛轧糖获得 LOCKED_BOOT_COMPLETED 动作
- ms-access-2013 - 需要访问查询以反映具有最新日期/跟进字段的数据
- javascript - 如何使用 jQuery 添加事件监听器?
- c# - 实现自己的 KeyValuePair 版本的问题
- python - 将excel数据转换为嵌套字典和列表
- javascript - Access-Control-Allow-Origin 不是 * 但 Chrome 坚持是(升级 apollo-server 后)
- c++ - OpenGL:在着色器中执行 TexCoord 计算,不好的做法?