Adr*_* Be 11 javascript ajax jquery
在普通的javascript中执行Ajax请求时,似乎可以设置超时值.请参阅如何在浏览器中检测AJAX(XmlHttpRequest)调用的超时?
当我使用jQuery的ajax实现和其他类似的框架时,它也是可能的.请参阅设置ajax超时(jQuery)
浏览器似乎对其默认超时有相当模糊的规范.请参阅浏览器超时
因此,有人可能会"嘿,我要为我的ajax请求设置超时,以便所有用户都具有相同的超时".
但接下来的问题是:它会在所有情况下实际覆盖浏览器的超时吗?
当我说"所有"情况时,我的意思是,例如,如果浏览器超时值小于您的ajax请求超时值.
我怀疑它没有.
我还怀疑最好总是有一个超时错误处理程序,以确保无论发生什么,您都可以显示相关消息,这将为您的支持团队节省数小时的工作,并为您的公司节省资金.请参阅确定$ .ajax错误是否超时
提前致谢
这是一个有趣的问题,我在 Chrome 59.0 和 Firefox 54.0 中使用 10 分钟延迟服务作为后端进行了一些实验。
经过一些测试将客户端上的超时设置为 10 分钟后,我在两个浏览器中 300 秒(5 分钟)后收到了文本状态为“错误”的错误响应,因此至少对于这两个浏览器,无法覆盖内部超时价值。我假设市场上其余浏览器的行为相同。
我的测试脚本:(vanilla JavaScript 的类似结果)
var st = new Date();
$.ajax({
url: "https//mysitewith10minresponse.com/foobar",
type: "GET",
dataType: "json",
timeout: 600000,
success: function(response) { console.log(response); },
error: function(jqXHR, textStatus, errorThrown) {
st = (new Date() - st)/1000;
alert("Text Status " + textStatus + ", diff: " + st + " seconds");
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3496 次 |
| 最近记录: |