javascript - 外部 Javascript 超时

标签 javascript

我的网站上安装了一些跟踪脚本和网络服务,我注意到当其中一项服务出现故障时,它仍会尝试调用托管在不同服务器上的外部 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/

相关文章:

javascript - 通过 AJAX 加载整个 AngularJS 页面

javascript - getElementsByTagName ('div' ) 返回两次出现

javascript - Bootstrap 轮播指示器位置当前与轮播内容重叠

php - 将 php 结果回显到两个单独的 div

javascript - 带箭头的 highcharts 单线

javascript - 使用浏览器自动下载文件并能正常打开或阅读

javascript - 带有 JSONP 的主干 js

javascript - 使用JS和PHP加载效果

Javascript 优化、V8 引擎和 Typescript

javascript - 测试 d3(和其他基于 SVG 的)Web 应用程序