我正在构建一个单页webapp,它开始变得非常大。应用程序有几个组件,每个组件都经过精心设计。平均而言,该应用的DOM元素数量为1200+。我的YSlow扫描警告我这太多了,我的DOM元素不应超过700个。
我的标记通常非常严格和高效,我怀疑我能够修剪得多。我倾向于使用大量的DOM元素来使样式完全正确并且跨浏览器工作。
如何大幅减少DOM元素的数量? 我是否必须按需加载更多内容(ajax)而不是全部加载页面? 大量DOM元素是否会对性能产生重大影响?
我希望听到人们对此的体验以及您可能拥有的任何解决方案......
答案 0 :(得分:5)
如果你通过Javascript在页面上进行大量的DOM和/或CSS操作,那么dom元素的数量只会进入图片。扫描具有50,000个元素的页面中的ID总是比仅有500个页面的页面慢。更改大部分页面继承的CSS样式很可能导致比更简单的页面更多重绘/回流页面等...
减少元素数量的唯一方法是简化页面。
答案 1 :(得分:3)
我们已经构建了单页网页应用。最初Yslow担心我,因为我们在页面中有2,000多个DOM对象。
经过一些工作,我们将所有其他Yslow项目变为绿色。我们最终生活在它(现在大约1,800),因为应用程序在各种浏览器中都非常快。
但我们不支持IE6和IE7,这些浏览器可能会有所不同。
答案 2 :(得分:2)
如何大幅减少DOM元素的数量?
仅使用必要的元素。如果您想要更详细的建议,请发布您的代码。
我是否必须在页面加载时加载更多内容(ajax)?
如果您希望您的网页在启动时表现更好,您可以这样做。
大量DOM元素对性能有很大影响吗?
不一定。
答案 3 :(得分:0)
您可以在用户点击按钮时按需呈现元素,也可以像Twitter一样使用延迟加载。