首页 > 解决方案 > 使用主窗口中的预连接资源提示来提高外部 iframe 中脚本的性能

问题描述

我有一个有外国 iframe的网站。有多个第三方脚本在这个外部 iframe 中运行。

我知道如果我prefetch从主窗口中使用这些脚本 - iframe 将需要重新加载这些源(就像prefetch在不同的域中完成的那样)。

如果我在主窗口中为第三方脚本添加或资源提示,在 iframe 中加载这些脚本的性能会提高,这可能是什么原因?这仅仅是因为我预热了脚本吗?dns-prefetchpreconnect

标签: javascriptiframebrowserprefetchweb-performance

解决方案


出于隐私原因,一些浏览器实现了双键 HTTP 缓存以防止跟踪。这意味着如果 domain1 从 CDN 加载 jQuery,然后 domain2 从同一域加载相同的 jQuery 资源,它将再次下载,而不是重复使用 HTTP 缓存中的相同副本。

Safari 已经这样做了一段时间,Chrome 最近也表示他们也会这样做

这意味着您不能prefetchpreload您所说的外国域 iframe 中的资源和脚本。

dns-prefetch并且preconnect没有这样的隐私影响(目前 - 请参阅下面安迪的回答,了解可能即将发生的预连接更改)。因此它们可用于通过预先加载一些工作以获取这些脚本来提高 iframe 的性能(尽管应该注意,浏览器可能并不总是使用相同的连接,这取决于可能会影响使用的浏览器preconnect)。


推荐阅读