首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >为什么iframe这么慢?

为什么iframe这么慢?
EN

Stack Overflow用户
提问于 2009-07-07 12:38:27
回答 3查看 45.6K关注 0票数 29

我有一个更长的问题要问你--但希望答案会很简单:)

假设我有一个带有链接和iframe的非常简单的页面(只是为了简单的例子)。

代码语言:javascript
复制
<body>
    <a href="test.html" target="mframe">open link></a>
    <iframe name="mframe" [params] />
</body>

因此,当您单击链接时,它将在框架中加载test.html。

现在我将使用div和ajax调用来更改iframe。

代码语言:javascript
复制
<body>
    <a href="doAjaxCall('test.html')">open link</a>
    <div id="main-content"></div>
</body>

doAjaxCall将简单地使用GET ajax requset来获取整个响应,解析它(使用JavaScript),获取标记中内容并将其放入main-content.innerHTML中。

test.html包含很多html和css样式(但与父页面相同-所以我在使用ajax解决方案时不需要它们)。

问题:

为什么这个ajax解决方案这么快?我仍然在下载相同数量的数据(下载整个test.html)。

为什么iframe解决方案如此缓慢?是不是因为浏览器必须重新解析所有可能的样式?或者,iframes还有其他开销吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-07-07 12:45:38

你基本上走在了正确的道路上。iframes会变慢,因为浏览器会有额外的开销(渲染它,维护它的实例和对它的引用)。

ajax调用将会更快一些,因为您可以获得数据,然后注入它,或者对它做任何您想做的事情。iframe将需要在浏览器内存中构建一个全新的“页面”,然后将其放入页面中。

票数 29
EN

Stack Overflow用户

发布于 2009-07-07 12:55:44

Steve Souders在他的高性能网站博客上发表了一篇文章,可能会提供一些更多的见解。

票数 18
EN

Stack Overflow用户

发布于 2015-11-19 00:21:15

尽管浏览器自2009年以来已经有所改进,但事实上浏览器需要访问额外的服务器(假设iframe用于第三方内容),或者再次访问本地服务器(假设iframe用于本地内容),这仍然会影响页面性能。一般来说,额外的HTTP请求总是会对页面的性能产生影响。如果可以在页面加载后构建iframe,然后呈现iframe的内容,这将改善初始页面加载。然而,当iframe加载额外的内容时,我认为这会影响页面性能。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1092071

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档