【发布时间】:2017-06-21 10:44:14
【问题描述】:
我的ajax代码是
var auto_refresh = setInterval(function () {
$.ajax({
type: 'post',
url: 'lib/nav.php',
data: 'c=autchk',
success: function (result) {
$('#test-div').html(result);
},
error: function (jqXHR, textStatus, errorThrown) {
// I don't know how to display error message
console.log('Error: '+jqXHR+' '+textStatus+' '+errorThrown);
}
});
}, 9000);
请求有时会在超时之前被取消。 在 chrome 日志中,取消请求的状态是停滞的。然后我阅读了导致我这样做的解释
排队。浏览器在以下情况下对请求进行排队:
- 有更高优先级的请求。
- 已经有六个 TCP 为这个来源打开的连接,这是限制。适用于 仅限 HTTP/1.0 和 HTTP/1.1。
停滞不前。请求可能由于排队中描述的任何原因而停止。
问题是因为这个还是其他原因?
编辑:
我在 3 个浏览器中测试代码
我在 Microsoft Edge 中没有看到任何已取消的请求。 Chrome 中的内容比 Firefox 更多。
【问题讨论】:
-
对于浏览器中的 ajax 请求,您有限制,它取决于浏览器,例如对于 chrome 浏览器,它在一段时间内大约有 8 个 ajax 请求。请让您以书面方式使用 ajax 请求。
-
@Farhad 那么如何修复我的代码以便 chrome 不会取消我的请求?
-
你为什么要使用超时!! .请解释一下你打算用那个 ajax 做什么
-
我删除了超时,有时它会在 9 秒内失败。我使用超时是因为我担心是否会有多个 ajax 请求会减慢连接速度。对不起,如果我错了。我想要做的是我想检查数据库中的新输入然后做一些关于它的通知。我的代码做错了吗?
标签: javascript jquery ajax google-chrome