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