0

次のコードを調整して、3回繰り返す以外に、3つの別々のページ(&page = 1、&page = 2、&page = 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

何かのようなもの:

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 に答える
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 に答える