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

但是当我阅读控制台时,我只得到 2 或 3 个结果而不是 10 个。我认为是因为我无法运行多个 onload。我该如何解决这个问题?

4

1 回答 1

0

通过onload,您的意思是多个ajax.send?这可能不是问题所在。

可能只是返回的 ajax 没有返回与您的选择器(磁铁)匹配的内容,或者您​​的服务器没有正确响应所有请求?用一个简单的 console.log 替换你的 console.log ("Here be dragons");

如果你 ajax 从同一台服务器获取页面,你应该检查日志看看你有多少请求,如果你总是正确回复。当并行请求太多时,某些服务器会以 50 倍的错误返回,或者在 loadPage 函数中设置断点,暂停将足以让服务器及时处理所有内容。

于 2014-12-24T13:03:57.683 回答