jQuery:是否可以在另一个getJSON请求中使用getJSON请求?

时间:2014-07-19 15:40:07

标签: javascript jquery ajax getjson

是否可以使用jQuery?

在另一个getJSON请求中使用getJSON请求

这样的事情:

// Population the Requests List
// jQuery AJAX call for JSON
$.getJSON( '/workspace/friends/sentRequests', function( data ) {
    // For each item in our JSON, add a table row and cells to the content string
    $.each(data, function(){
        //Loading each user data into global variable.
        $.getJSON( '/workspace/friends/' + this.friendId, function( user ) {
            requestListData.push(user);
        });

        requestTableContent += '<tr>';
        requestTableContent += '<td><a href="#" class="linkshowuser btn btn-info btn-xs"" rel="' + this.friendId + '" title="Show Details">' + this.name + '</td>';
        requestTableContent += '<td><a href="mailto:' + this.email + '">' + this.email + '</a></td>';
        requestTableContent += '<td>' + moment(useListData[-1].activity.date_established).format('MMMM Do YYYY') + '</td>';
        requestTableContent += '<td>' + this.gender + '</td>';
        requestTableContent += '<td><a href="#" class="linkdeleteuser btn btn-danger btn-xs" rel="' + this.email + '">Danger!</a></td>';
    });

    // Inject the whole content string into our existing HTML table
    $('#requestList table tbody').html(requestTableContent);
});

我想知道这是否可行?如果是这样的话,我在这里做错了......

编辑: 我之所以这样问,是因为它应该使用getJSON请求中的数据填充表格,但事实并非如此。

2 个答案:

答案 0 :(得分:5)

是的,没关系。您在此处执行 series 中的两个请求 - 第二个请求将在第一个返回之前执行。这是必要的,因为内部请求取决于外部请求的响应。

如果您控制服务器,您几乎可以通过从单个请求返回组合数据来提高应用程序效率。

在第二个请求不依赖于第一个请求的情况下,您可以使用jQuery.when parallel 中发出请求,等待几个请求完成{{3} }}

var first = $.getJSON({  ... });
var second = $.getJSON({  ... });


$.when(first, second)
  .done(function(firstResult, secondResult) {
     // Executed when both requests complete successfully
     // Both results are available here 
  })
  .fail(function() {
    // Executed if at least one request fails
  })

promises

答案 1 :(得分:0)

是的,有可能。您可以在第一个请求的回调函数中执行任何 JavaScript 代码。