0

外部ソースから要素を取得するためのこの単純なコードがあります

for(var i=0; i<10; i++)
    loadPage(link[i]);

function loadPage(href)
{
    var ajax = new XMLHttpRequest();
    ajax.open('get',href);
    ajax.responseType = 'document';
    ajax.onreadystatechange=function()
    {
        console.log(ajax.responseXML.querySelectorAll("a[href^='magnet']")[0].getAttribute("href"));
    }   
    ajax.send();
}

しかし、コンソールを読むと、10ではなく2または3の結果しか得られません。複数のオンロードを実行できないためだと思います。どうすればこれを修正できますか?

4

1 に答える 1

0

オンロードとは、複数の ajax.send のことですか? それはおそらく問題ではありません。

返された ajax がセレクター (マグネット) に一致するものを返していないか、サーバーがすべての要求に適切に応答していない可能性があります。console.log を単純な console.log ("Here be dragons") に置き換えます。

同じサーバーからページを ajax フェッチする場合は、ログをチェックして、リクエストの数と、常に正しく応答するかどうかを確認する必要があります。一部のサーバーは、並列リクエストが多すぎる場合、または loadPage 関数にブレークポイントを設定すると、50x エラーで返されます。一時停止は、サーバーが時間内にすべてを処理できるようにするのに十分です。

于 2014-12-24T13:03:57.683 に答える