我的网站上安装了一些跟踪脚本和网络服务,我注意到当其中一项服务出现故障时,它仍会尝试调用托管在不同服务器上的外部 javascript 文件。在 Firefox、Chrome 和其他新浏览器中,其中一项服务出现故障时似乎没有任何问题。但是,在 IE7 和 IE8 中,我的页面不会一直加载并在显示所有内容之前超时。有什么方法可以在这些 javascript 调用上添加超时,以防止它们在出现故障时破坏我的页面?
最佳答案
您可以在使用 JS 加载页面后动态加载它们。如果 JS 文件位于不同的服务器上,当您执行此操作时,浏览器仍会显示“浏览器忙”指示符,但会加载原始页面。
如果您可以从自己的站点获取 JS,则可以在页面加载后使用 XMLHttpRequest
加载它(或使用您最喜欢的 JS 库的助手,例如 jQuery 的 $.ajax(.. .)
) 然后评估它。这样,抓取本身就不会显示浏览器忙碌指示器。
要从您自己的站点获取 JS,您可以从您的跟踪提供商处下载它(官方不支持但通常可以使用)- 只需记住每隔一段时间重新获取新版本 - 或者您可以创建一个您自己站点上的“转发”服务从跟踪提供商处获取它并在本地缓存一段时间。这样你的 JS 就不会有过时的危险。
Steve Souders 有更多关于 deferred loading of scripts and browser-busy indicators 的信息.
关于javascript - 外部 Javascript 超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2404127/