0

私は非常にユニークな設定をしていますが、これはこの問題に何らかの影響を与えていると思います (これまでに見たことがない)。

私は Google Chrome 拡張機能を作成しており、バックエンドとして Node.js に依存しています。

複数の Ajax リクエストを実行すると、Node.js の応答に時間がかかります (たとえば、2.5 秒)。一部の Ajax リクエストは応答を受信せず、エラーをスローします。

Node.js サーバーに、2500 ミリ秒待機した後に JSON オブジェクトで応答するテスト機能をセットアップしました。これが単一のリクエストで機能することを確認しました。

次に、拡張機能に jQuery を埋め込んで、次の 2 つのリクエストを試してみました。

            (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');

                  }
               });
            })();

この場合、2 番目のアラートのみが呼び出されます。最初のものは最終的にエラー (タイムアウト) になります。

次のように、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();

この場合、両方の要求が失敗します。どちらからも返事がありません。

また、自動生成されたバックグラウンド ページで実行されるバックグラウンド スクリプトでこのコードを試しました。これも失敗します (どちらの成功も機能しません)。

これは、私がここに書いている非常にニッチなケースに何らかの形で関連していると思いますが、この時点で、トラブルシューティングを行って前進する方法についての立場に立っています. この問題をさらに調査するためのアイデアはありますか?

ありがとう!ケビン

4

0 に答える 0