首先,澄清一下,这个问题与onload页面渲染性能无关。
我正在开发一个使用SVG& amp;的Web应用程序(HTML5,SVG,CSS3和Js)。很多javascript。它的拖拽速度明显变慢了。我们不得不回去和重写&检查所有现有功能以优化应用程序。
我的一位队友认为,如果我在iframe中加载一个功能,那么Web应用程序不会产生太大影响,因为浏览器会在一个单独的线程中处理它。因此,现有的Web应用程序选项卡不必承担iframe内容呈现的冲击。更新。要添加,iframe中的内容可以在需要时轻松呈现在div中。
我的问题是,浏览器(最新和最好的课程)是否为渲染和分配资源分配了不同的资源。处理iframe时的表现呢?对于这个问题,应用程序加载不是问题。
答案 0 :(得分:3)
我讨厌在这里跳过一个旧线程,但接受的答案是误导性的。您的朋友是正确的:iframe实际上是沙箱,因此他们的渲染过程在现代浏览器中是独立的,异步的和多线程的。因此,虽然将应用程序的某些部分细分为iframe不会加快任何javascript执行速度,但它很可能会提高呈现性能,从而将其分段并简化每个页面组件的DOM。
作为参考,请查看the story about Fastbook,这是Sencha工程师在几个星期内作为晚间项目整理的,只是为了表明Facebook网络应用程序可以进行大幅优化。除此之外,他们还使用iframe进行沙箱渲染。
作为旁注,这并不是浏览器应该如何工作的。 (例如,Chrome团队鼓励人们为需要iframe以提高性能的情况提交错误。)尽管如此,在可预见的未来,它仍然是复杂应用程序的最佳实践,尤其是具有多个“面板”和高回流率的应用程序。
答案 1 :(得分:1)
同一域<iframe>
保证在同一个线程中运行。
如果浏览器无法互相交互,则浏览器只能在不同的线程上运行两个页面。