javascript - iFrame - 在 Web 应用程序中实现 Iframe 的成本

标签 javascript performance iframe

首先澄清一下,这个问题不是关于onload页面渲染性能的。

我正在开发一个使用 SVG 和大量 JavaScript 的 Web 应用程序(HTML5、SVG、CSS3 和 Js)。它已经到了拖动速度明显缓慢的地步,我们必须返回并重新编写和审查所有现有功能以优化应用程序。

我的一位队友认为,如果我在 iframe 中加载某个功能,Web 应用程序不会产生太大影响,因为浏览器会在单独的线程中处理它,因此现有的 Web 应用程序选项卡不必承受iframe 内容渲染和更新的首当其冲。另外,如果需要,iframe 中的内容可以轻松呈现在 div 中。

我的问题是,浏览器(当然是最新的和最好的)在处理 iframe 时是否为了渲染和性能而分配单独的资源?应用程序加载不是这个问题的问题。

最佳答案

我不想在这里跳上旧话题,但接受的答案具有误导性。你的 friend 是对的:iframe 被有效地沙箱化,因此它们的渲染过程在现代浏览器中是独立的、异步的和多线程的。因此,虽然将应用程序的各个部分分割成 iframe 不会加快任何 JavaScript 的执行速度,但它很可能会提高渲染性能,因为它分割并简化了每个页面组件的 DOM。

作为引用,请查看the story about Fastbook ,Sencha 工程师花了几周时间将其作为晚间项目整理出来,只是为了表明 Facebook 网络应用程序可以得到极大的优化。除此之外,他们还使用 iframe 进行沙箱渲染。

顺便说一句,这并不是浏览器真正应该工作的方式。 (例如,Chrome 团队鼓励人们在需要 iframe 来提高性能的情况下提交错误。)不过,在可预见的 future ,这对于复杂应用程序来说是最佳实践,尤其是那些具有多个“面板”和高回流率的应用程序。

关于javascript - iFrame - 在 Web 应用程序中实现 Iframe 的成本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11329487/

相关文章:

ios - 究竟什么代码必须放在 iOS 的主线程上?

sql - 正确的分区 SQL 索引 + 删除排序的顺序

javascript - 如何在不刷新页面的情况下调整 iframe 的大小?

javascript - 单击另一个 DIV 重新加载一个 DIV

javascript - jQuery focusout 不会在输入元素退出时触发

javascript - 加载页面后使用 jquery 替换或附加文本?

jquery - 如何通过 jQuery 在 iframe 中获取 div 样式?

javascript - UglifyJS - 转换文件夹中的所有 .js

python - Pandas 填补了性能问题

html - 从 iFrame 中移除最小高度