Wistia E-v1.js 脚本被加载两次

Wistia E-v1.js script being loaded twice

所以我在调用 wistia 脚本时脑子里有这样一个脚本标签:

<script charSet='ISO-8859-1' src='//fast.wistia.com/assets/external/E-v1.js' async defer data-script='wistia' />

然而,当我查看 Chrome 上的网络选项卡时,我注意到来自 Wistia 的 E-v1.js 脚本被加载了两次,这是相当重要的,因为它是一个 273kb 脚本.

脚本的第一次加载来自 https://fast.wistia.com/assets/external/E-v1.js,我调用它的位置。

然而,脚本的第二次加载来自 iframe,尽管我没有在页面上放置任何 iframe。即使在不包含任何 wistia 视频的网页上,此 iframe 也会调用脚本。推荐人是:https://fast.wistia.com/embed/iframe_shim?domain=com.

这是怎么回事?我认为这是 wistia 通过 iframe 延迟加载他们的脚本的一些尝试有用的行为,但它已经加载了...

所以我联系了Wistia并得到了答复。他们的开发实践并不完全直观。

这家伙是这么说的:

The iframe_shim is a way of tracking the visitor_key for stats tracking, and storing that information on the fast.wistia domain rather than your domain. For a more lightweight method of doing that, you can set window.wistiaIframeShim = false in script tags on your page, and that will stop E-v1.js from loading again. Visitors will then be tracked via a cookie and localstorage directly on your domain instead of the fast.wistia.com domain. As far as I know this shouldn't be problematic, and we'll eventually be changing how that works to make it more efficient, it just hasn't been prioritized yet.

所以他们似乎从两个不同的来源加载了两次,只是为了在他们自己的域而不是客户端上存储少量信息。对我来说似乎很荒谬,但我现在可以确认,您所要做的就是更改 window 变量。

修复: window.wistiaIframeShim = false