您好我想知道网页上允许的div数量是否有限制?
例如,当Internet Explorer必须呈现具有一千个div的网页时,它会开始窒息吗?
答案 0 :(得分:27)
我知道这是一篇旧帖子,但我最近做了一个与此主题直接相关的测试,我想分享我的结果。
我创建了一个简单的PHP脚本,它会扫出x个5px乘5px的内联块div来测试浏览器的稳定性和页面滚动能力。
页面上的1000 divs,IE9,Firefox和Chrome没有任何问题,甚至在滚动时似乎没有打嗝。
在10,000 div时,IE9和Chrome能够以几乎没有明显的延迟滚动,仍然在我书中的“可接受”范围内,但Firefox开始明显滞后,直到你感觉滚动条跳跃的程度进入比它应该晚了半秒的位置。
有趣的是,10,000 div和100,000之间的性能差异并不像你想象的那么大。 IE9和Chrome在滚动时几乎没有明显的延迟(Chrome在两者中稍微平滑一些),Firefox有一个非常明显的延迟,可能会被认为是烦人的,但仍然运行得相当好(即它没有'崩溃)。
现在页面上有500,000个div,它终于开始变得有趣了。 IE9崩溃并试图重新启动(当然在同一页面上)并再次崩溃,此时我正确关闭它,重新启动它,并再试一次,以确保再次发生相同的结果。它做了。
Chrome保持稳定,但由于极度延迟,几乎无法滚动页面。
最大的惊喜是Firefox,在100,000个div上的浏览器大小与500,00 div几乎相同...滚动不顺畅,但它比Chrome更方便。
令人惊讶的是,对于页面上的1,000,000个div,结果几乎相同! Firefox处理它们时没有崩溃,虽然“矮胖”但仍然可以滚动。 IE9崩溃了。 Chrome可以加载页面,但变得非常慢,几乎无法使用。
我知道这不是一项科学研究,但我认为除了我自己以外的其他人可能会感兴趣。
在戴尔工作站上使用双Xeon处理器和4台ram进行测试,运行Windows 7.
答案 1 :(得分:1)
有两件事需要考虑。内存是一个,DOM节点占用大量空间。另一个是在发生变化时重新渲染所有这些节点所需的CPU时间。平滑渲染的阈值取决于所使用的引擎。根据我的经验,IE远远落后,几百后开始窒息。 Firefox可能需要几千个,而且对于像Chrome这样的WebKit浏览器也是如此(并且好一点)。