AJAX超时实际测量的是什么?

时间:2014-06-02 20:56:22

标签: jquery ajax networking xmlhttprequest timeout

我的代码中有几个jQuery和AngularJS AJAX调用,具有超时值,例如this(jQuery):

$.ajax({
    url: url,
    type: "POST",
    dataType: "xml",
    timeout : 5000,
    data: data
});

或者这个(Angular):

$http.post(url, data, {timeout:5000}).then(function(response){});

我的问题是超时参数实际测量的是什么?我改变了超时并运行了各种测试。我还在浏览器中监控网络请求但这只会让我更加困惑。我注意到时间线中记录的测量值不是预测请求是否会在时间轴上进行的非常好的预测。例如,我可以在毫秒级别上发出一个请求,触发超时,并将我的超时参数设置为5秒。显然,至少有一个其他因素在这里发挥作用,我不是一个知道它是什么的网络专家。

1 个答案:

答案 0 :(得分:0)

  

设置请求的超时(以毫秒为单位)。这将覆盖   使用$ .ajaxSetup()设置的任何全局超时。超时时间开始   在$ .ajax调用的点上;如果有其他几个请求   进度和浏览器没有可用的连接,这是可能的   请求在发送之前超时。在jQuery 1.4.x和   如下所示,XMLHttpRequest对象将处于无效状态   请求超时;访问任何对象成员可能会抛出一个   例外。仅在Firefox 3.0+中,脚本和JSONP请求不能   超时取消;即使脚本到达,脚本也会运行   超时期限。

这就是jquery ajax所说的。

说,时间是一个因素,它几乎依赖于从浏览器到网络的每个堆栈。除非你有明确的定义实验,否则很难给出具体答案。