Ajax:将多个页面内容加载到变量中

时间:2016-09-14 14:29:30

标签: javascript ajax

根据接受的答案here,我试图在for循环中调用该函数来加载本地域中某些页面的内容,但我只得到第一页的结果,这只是在我评论for行时。 这是我的代码:

    function ready()
{
    var from = 0, to = sites.length;
    var xmlhttp=false;
    var content = '';

    for(from; from < to; from++)
    {
        loadDoc(sites[from]);
        if(xmlhttp==false)
        {
            setTimeout(loadDoc(pages[from]), 1000);  //try every sec.
        }
        else
        { content = xmlhttp.responseText;}
    }
}

我做错了什么/失踪了?非常感谢。

1 个答案:

答案 0 :(得分:1)

首先:从我在您的代码中看到的,您在每次迭代中将新数据重新分配给“content”变量(这意味着不是累积每个迭代的数据,它在最新的xmlhttp.responseText中在每次迭代中重写它自己

如果您希望将所有内容累积在一个变量中(作为字符串),那么您应该像这样使用变量:

content += xmlhttp.responseText;

如果您想将所有响应存储在单个变量中但作为数组(稍后可以针对每个单独的内容响应进行迭代),您可以使用数组添加,定义一个空数组:

var contentList = [];

并在每次迭代中将新项目推入其中:

contentList.push(xmlhttp.responseText);

我希望它有点帮助