检测并记录外部JavaScript或CSS资源无法加载的时间

Mar*_*man 7 javascript css jquery timeout http

我有多个<head>外部js和css资源的引用.大多数情况下,这些都适用于第三方分析等.不时(传闻),这些资源无法加载,通常会导致浏览器超时.当外部JavaScript或CSS资源无法加载时,是否可以检测并登录服务器?

我正在考虑某种类型的延迟加载机制,当失败时,将调用一个特殊的URL来记录此失败.有什么建议吗?

我认为发生了什么:

  1. 用户点击我们的页面,服务器端成功处理并提供页面

  2. 在客户端,HTML标头尝试连接到我们的第三方集成合作伙伴,通常是以"http://www.someothercompany.com ..."开头的javascript包含.

  3. 另一家公司无法处理我们的负载或者有很多工作时间,因此连接失败.

  4. 用户看到一个通用的IE Page Not Found,而不是我们服务器中的一个.

因此,即使我的网站已启动且其他所有内容都正常运行,只是因为这个调用第三方服务器失败了,一个在HTML页面标题中,我们完全无法启动.

jos*_*ght 5

如果你的应用程序/页面依赖于JS,你可以用JS加载内容,我知道这很混乱。当使用 JS 加载这些内容时,您可以使用回调,让您只拥有已加载内容的功能,而不必担心未加载的内容。

var script = document.createElement("script");
script.type = "text/javascript";
script.src = 'http://domain.com/somefile.js';
script.onload = CallBackForAfterFileLoaded;
document.body.appendChild(script);
function CallBackForAfterFileLoaded (e) {
//Do your magic here...
}
Run Code Online (Sandbox Code Playgroud)

我通常通过使用相互依赖的 JS 数组和文件来让这变得更复杂,如果它们不加载,那么我就会出现错误状态。

我忘了提及,显然我只是展示如何创建 JS 标签,您必须为要加载的其他类型的文件创建自己的方法。

希望也许有帮助,干杯