【问题标题】:Detecting and terminating slow third party javascript requests检测和终止缓慢的第三方 javascript 请求
【发布时间】:2011-12-25 18:41:12
【问题描述】:

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

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

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

【问题讨论】:

  • 9 个问题 - 0 个接受的答案。请接受您之前问题的答案。

标签: javascript jquery error-handling


【解决方案1】:

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

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,但您可能需要添加一些额外的逻辑来处理超时等等。

【讨论】:

  • 感谢您的回复,我试试看,我会仔细查看head.js
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-05-23
  • 2018-08-08
  • 1970-01-01
  • 2018-02-10
  • 2012-06-02
  • 2020-06-27
  • 2012-09-22
相关资源
最近更新 更多