太多的 DOM 元素
Too Many DOM Elements
我正在构建一个单页网络应用程序,它开始变得非常大。该应用程序有几个组件,每个组件都经过精心设计。平均而言,该应用程序的 DOM 元素计数为 1200+。我的 YSlow 扫描警告我,这太多了,我不应该超过 700 个 DOM 元素。
我通常对我的标记非常严格和高效,我怀疑我是否能够修剪很多。我倾向于使用很多 DOM 元素来获得完全正确的样式并跨浏览器工作。
如何大幅减少 DOM 元素的数量?我是否必须按需加载更多内容 (ajax) 而不是在页面加载时加载所有内容?大量的 DOM 元素对性能有很大的影响吗?
我很想听听人们对此的体验以及您可能拥有的任何解决方案......
只有当你通过Javascript在页面上做大量的DOM和/或CSS操作时,dom元素的数量才会进入图片。在包含 50,000 个元素的页面中扫描 ID 总是比只有 500 个元素的页面慢。更改大多数页面继承的 CSS 样式很可能会导致比在更简单的页面上更多的重绘/重排,等等......
减少元素数量的唯一方法是简化页面。
我们构建了一个单页 Web 应用。最初 Yslow 让我担心,因为我们在页面中有 2,000+ 个 DOM 对象。
经过一些工作,我们将所有其他Yslow项目都变成了绿色。我们最终接受了它(现在大约 1,800 个),因为该应用程序在各种浏览器中都非常快。
但我们不支持 IE6 和 IE7,这些浏览器可能会有所不同。
如何大幅减少 DOM 元素的数量?
仅使用那些必需的元素。如果你想要一个更详细的建议,发布你的代码。
我是否必须按需加载更多内容 (ajax) 而不是在页面加载时加载所有内容?
如果您希望页面在启动时表现更好,则可以这样做。
大量的 DOM 元素对性能有很大的影响吗?
不一定。
您可以在用户单击按钮时按需渲染元素,也可以使用延迟加载,如 Twitter。
- 在单击任何位置时隐藏元素,而不检查每次DOM单击
- 是否有任何snippet或jQuery插件可以列出easylist.txt模式匹配的DOM中的所有元素
- 在不使用JQuery的情况下隐藏DOM中的选定元素
- 如何在DOM元素上按类型构建此函数
- DOM元素和angular元素之间的主要区别是什么
- 当带有渲染器的DOM元素不在屏幕顶部时,移动了场景的坐标
- 如何使用JavaScript在没有html dom的情况下隐藏html元素
- 使用jquery创建dom元素会导致ie9出现拒绝访问错误
- 通过AJAX侦听向DOM添加某些元素
- 如何在使用Ractive.extend()时引用DOM元素
- 在d3中向DOM元素添加了图像,但现在它赢得了't过渡
- Selenium无法在浏览器DOM中定位元素
- 如何'剪切'DOM元素并将其显示在其他位置
- 转换<a>使用jQuery将文本字符串转换为dom元素
- 从dom中删除任何元素后,Touchmove事件停止触发
- d3在数据更新时错误地附加了dom元素
- 访问VueJS中的DOM元素
- 在Meteor中如何查找DOM元素(渲染后)
- 找到元素DOM的根节点(阴影或光)的最佳方法是什么?
- 在querySelector:如何获得第一个和最后一个元素?dom中使用的遍历顺序