对Node.js的多个Ajax请求超时

时间:2012-07-07 14:24:21

标签: javascript jquery node.js google-chrome

我有一个非常独特的设置,我想这对这个问题有一些影响(我以前从未见过)。

我正在编写Google Chrome扩展程序,我依靠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();

在这种情况下,两个请求都失败了;我没有收到任何一个回复。

我还在后台脚本中尝试了这段代码,在自动生成的背景页面上运行。这也失败了(两次都没有成功)。

我猜这在某种程度上与我在这里写的非常小的案例有关,但在这一点上,我真正站在如何排除故障和向前发展的立场。有没有进一步探讨这个问题的想法?

谢谢! 凯文

0 个答案:

没有答案