Javascript 对Node.js的多个Ajax请求超时
我有一个非常独特的设置,我想这会对这个问题产生一些我以前从未见过的影响 我正在编写一个GoogleChrome扩展,并且依赖Node.js作为我的后端 当我运行多个Ajax请求时,Node.js需要很长时间才能响应,例如,2.5秒,一些Ajax请求将永远不会收到响应并抛出错误 我已经在Node.js服务器中设置了一个测试函数,在等待2500毫秒后,它将用一个JSON对象进行响应。我已经确认,对于单个请求来说,这是有效的 然后,我尝试在扩展中嵌入jQuery并尝试两个请求:Javascript 对Node.js的多个Ajax请求超时,javascript,jquery,node.js,google-chrome,Javascript,Jquery,Node.js,Google Chrome,我有一个非常独特的设置,我想这会对这个问题产生一些我以前从未见过的影响 我正在编写一个GoogleChrome扩展,并且依赖Node.js作为我的后端 当我运行多个Ajax请求时,Node.js需要很长时间才能响应,例如,2.5秒,一些Ajax请求将永远不会收到响应并抛出错误 我已经在Node.js服务器中设置了一个测试函数,在等待2500毫秒后,它将用一个JSON对象进行响应。我已经确认,对于单个请求来说,这是有效的 然后,我尝试在扩展中嵌入jQuery并尝试两个请求:
(function(){
$.ajax({
url : url,
data : params,
type : "POST",
success : function(data){
alert('success1');
},
error : function(xmlhttprequest, textstatus, message) {
alert('error');
}
});
})();
(function(){
$.ajax({
url : url,
data : params,
type : "POST",
success : function(data){
alert('success2');
},
error : function(xmlhttprequest, textstatus, message) {
alert('error');
}
});
})();
在这种情况下,只调用第二个警报。第一个错误最终将导致错误超时
我也尝试过不使用jQuery,如下所示:
var xhr = new XMLHttpRequest();
xhr.open("POST", url, true);
xhr.onreadystatechange = function() {
alert('response1');
}
xhr.send();
var xhr2 = new XMLHttpRequest();
xhr2.open("POST", url, true);
xhr2.onreadystatechange = function() {
alert('response2');
}
xhr2.send();
在这种情况下,两个请求都失败;我没有收到任何一方的回复
我也在后台脚本中尝试了这段代码,在自动生成的后台页面上运行。这也是失败的,成功也不起作用
我猜这在某种程度上与我在这里写的小案例有关,但在这一点上,我真的站在一个立场上,如何排除故障并继续前进。有没有进一步探讨这个问题的想法
谢谢!
Kevin所以您将服务器设置为等待2.5秒再响应,现在您知道为什么需要2.5秒才能响应了吗?是否与检查了请求?Chrome开发者工具网络标签等。?显示是否使用您的服务器代码?使用JQuery调用节点服务器有什么独特之处?可能是浏览器对单个服务器的挂起连接数施加了限制,http 1.1标准推荐了两个。