使用jQuery Ajax获取外部页面时的递归问题

时间:2013-11-28 10:31:23

标签: javascript jquery ajax yahoo-api

我有一个Google Chrome扩展程序,用于从网站导出条目。我无法通过一个查询获取所有条目,并且我正在使用参数进行分页,即'...&p=' + pageNumber++。我通过连接到我的Web服务器来做到这一点,这不是PHP的问题。但我发现我可以使用jsPDF直接生成pdf文件,我决定摆脱服务器端的帮助。

现在我想用jQuery Ajax获取条目。问题是我事先不知道要获取多少页面。

我目前的解决方案是:

function runRecursionTest(url, pageNumber){
    var currentUrl = url + '?p=' + pageNumber;

    $.getJSON("http://query.yahooapis.com/v1/public/yql?"+
        "q=select%20*%20from%20html%20where%20url%3D%22"+
        encodeURIComponent(currentUrl)+
        "%22&format=json'&callback=?"
    ).done(function(data) {
        if(data.results[0]){
            data = filterData(data.results[0]);

            $('#export-target-list').append($(data).find('#entry-list').html());

            runRecursionTest(url, pageNumber++);
        } else {
            alert('Stop! Last page: '+(pageNumber-1));
        }
    });
}

这似乎合乎逻辑,是吧?但令人惊讶的是它失败了。即使我只有1页,也会发送太多请求。无法阻止它。

有什么想法吗?

0 个答案:

没有答案