私のスクリプトはGETリクエストをページ(http://example.org/getlisting/
)に送信しており、ページはJSONオブジェクトで応答します。({"success":true, "listingid":"123456"}
)
スニペットの例を次に示します。
var listingAjax = new XMLHttpRequest();
listingAjax.addEventListener("load", listingCallback, false);
function listingCallback(event) {
if (this.readyState == 4 && this.status == 200) {
console.log(this.responseText);
}
}
listingAjax.open("GET", "http://example.org/getlisting/", true);
listingAjax.send();
十分に単純です。スクリプトも完璧に機能します!これを実行したいときに問題が発生します。
var listingAjax = new XMLHttpRequest();
listingAjax.addEventListener("load", listingCallback, false);
function listingCallback(event) {
if (this.readyState == 4 && this.status == 200) {
console.log(this.responseText);
}
}
window.setInterval(function() {
listingAjax.open("GET", "http://example.org/getlisting/", true);
listingAjax.send();
}, 250);
私が想像するのは、私のスクリプトがサーバーに送信されるGET要求の安定したフローを作成し、サーバーがそれぞれに応答することです。次に、スクリプトはサーバーの応答を受信し、それらをコールバックに送信します。
もっと正確に言うと、このスクリプトを5秒間実行し、その間にスクリプトがサーバーに20個のGETリクエストを送信したとします。私のコールバック(listingCallback
)も20回呼び出されると思います。
問題は、そうではないということです。サーバーから応答を受信する前に2つのGET要求を送信した場合、応答は無視または破棄されるようです。
私はこれから何を間違っている/誤解していますか?