2016-08-22 89 views
1

我一直在试图找到答案这一点,但再也找不到一个:脚本代码加载iframe内

我有四个I帧加载父页面上。这些I帧中的每一个都有要执行的JavaScript(每个JS中略有不同)。

目前,我已经捆绑所有的JS到一个文件,该文件是在每个帧的标签。

我看到的行为是浏览器发出只有一个请求到该脚本,因为它是在每帧中的相同。

我的问题是:如果我想小束,通过拆分该JS文件到4个较小。脚本标记如何在iframe中加载?

如果他们加载异步:我可能会从中获得一些性能。 如果他们一个接一个地加载:然后拥有更大的包并避免多次往返可能会更好。

回答

2

iframe几乎和父页一样工作。想想它,就好像在浏览器中同时打开多个选项卡,每个选项都尽可能快地加载,而与其他页面无关。

使用单一的大捆意味着,一旦完成任何IFRAME下载,浏览器会缓存它和其他所有的I帧请求,将负载从缓存更快。

采用较小的束意味着每个IFRAME可能完成加载更快,如果它是特定的脚本的其他I帧之前完成,但也不能保证他们会继续完成订单。他们都会尝试异步加载它们各自的文件。

+0

由于4个iframe被同时追加,为什么我只看到一个请求发送到捆绑包? 我明白,如果这是第一次加载在iframe,然后在别人将它缓存,但如果它的异步,他们难道不就在同一时间读取同一资产? 也许浏览器足够聪明,可以看到当前正在提取某个特定的源代码? – XuoriG

+1

浏览器检查重复请求并自动合并它们。您可以通过制作一个页面来加载来自同一个URL的多个大图片进行测试。一旦发出一个请求,任何重复的URL将简单地搭载在相同的资源上。 – Soviut