0

我需要调整以下代码以对 3 个单独的页面发出多个请求(调整 &page=1、&page=2、&page=3),除了重复 3 次之外,我该如何组合呢?

$.getJSON("http://www.behance.net/v2/users/" + user + "/projects?api_key=" + api + "&callback=?&page=1", function (data) {
    var project_str = "";
    for (i = 0; i < data.projects.length; i++) {
        obj = {};
        obj = data.projects[i];
        project_str += '<a class="link" href="#' + obj.id + '"><img src="' + obj.covers['404'] + '" /></a>';
    }
    $('#behance_container div').append(project_str);
});
4

3 回答 3

0
$.each([1,2,3], function(i, numb) {
    $.getJSON("http://www.behance.net/v2/users/"+user+"/projects?api_key="+api+"&callback=?&page="+numb, function (data) {
        var project_str = "";
        $.each(data.projects, function(i, obj) {
            project_str += '<a class="link" href="#' + obj.id + '"><img src="' + obj.covers['404'] + '" /></a>';
        });
        $('#behance_container div').append(project_str);
    });
});
于 2013-01-19T16:43:21.500 回答
0

由于$.getJSON调用是异步的,您可能希望先收集所有数据,然后再将其显示给用户。否则,每次将数据检索/附加到 DOM 时,您都会得到一点“闪光”。以下内容未经测试,但应该可以工作(如果没有,我希望你能帮助你朝着正确的方向发展)。

var nrOfPages = 3,
    projects = [];

for(var i = 1; i <= nrOfPages; i++) {
    retrieveData(i);
}

// Retrieve the data by the pageNr
function retrieveData(pageNr) {
    $.getJSON("http://www.behance.net/v2/users/" + user + "/projects?api_key=" + api + "&callback=?&page=" + pageNr, function (data) {
        for (i = 0; i < data.projects.length; i++) {
            projects.push(data.projects[i]);
        };

        if(pageNr == nrOfPages) { // Check if all the pages are retrieved
            processData();
        }
    });
};

// Process the retrieved data
function processData() {
    var project_str = "";
    for (i = 0; i < data.projects.length; i++) {
        obj = {};
        obj = data.projects[i];
        project_str += '<a class="link" href="#' + obj.id + '"><img src="' + obj.covers['404'] + '" /></a>';
    }
    $('#behance_container div').append(project_str);
};
于 2013-01-19T16:44:48.060 回答
0

就像是:

for(var i=1;i<=3;i++)
{
    $.getJSON("http://www.behance.net/v2/users/" + user + "/projects?api_key=" + api + "&callback=?&page=" + i, function (data) {
        var project_str = "";
        for (i = 0; i < data.projects.length; i++) {
            obj = {};
            obj = data.projects[i];
            project_str += '<a class="link" href="#' + obj.id + '"><img src="' + obj.covers['404'] + '" /></a>';
        }
        $('#behance_container div').append(project_str);
    });
}
于 2013-01-19T16:41:25.367 回答