javascript - 检测和终止缓慢的第三方 javascript 请求

标签 javascript jquery error-handling

我们在我们的网站上使用跟踪像素的数量来收集有关我们访问者的统计数据。但是,我们嵌入代码中的一些第三方 javascript 通常正在等待来自其服务器的响应。他们的服务器通常没有正确响应,因此会导致错误消息以及及时呈现网站 HTML 元素的问题,从而导致巨大的性能问题。

有没有办法检测第三方 javascript 何时未在所需时间内返回,以便我们可以以某种方式终止对其服务器的调用并继续执行下一行代码?请注意,使用 JQuery.delay() 并不是真正解决此问题的方法。

我们可以使用 Try & Catch(error) 处理从他们的服务器返回的错误消息,但我不知道我们如何强制终止对外部服务器的 javascript 调用。

最佳答案

您可以改为使用缓存加载脚本:

var scriptTag = document.createElement("script");
scriptTag.type = "text/cache";
scriptTag.src = "http://thirdparty.com/foo.js";
scriptTag.onreadystatechange = scriptTag.onload = function() {
    if (scriptTag.readyState == "loaded" || scriptTag.readyState == "complete")
    {
        // it's done loading
    }
}

这将导致脚本像图像一样在后台加载;如果它们加载,您可以直接调用它们。需要注意的是,如果您有多个超时,它会消耗所有可用的传出连接。如果您只序列化第 3 方 Javascript,那么它们最多应该使用一个连接。

这是 head.js 使用的技术.您可能只使用 head.js,但您可能想要添加一些额外的逻辑来处理超时等等。

关于javascript - 检测和终止缓慢的第三方 javascript 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8073346/

相关文章:

linux - 将 stderr 重定向到错误处理程序

javascript - 为浏览器和 nodejs 构建

javascript - 如何简化这 3 个 switch-case 功能?

jquery - 执行 AJAX POST 时不允许使用的关键字符

javascript - 我如何以 JavaScript Easy 方式一次性进行多次静态服务调用

r - R代码循环错误

javascript - 解压文件

javascript - 将用户数据从 JSON 提取到展开的选择框并在选择选项时显示值

javascript - 在 React.js 中自动重置计时器

asp-classic - 经典的 asp - response.redirect in a sub - 错误处理