多个jquery ajax请求相同的回调

时间:2012-11-06 04:51:11

标签: jquery

我有一个要向其发出请求的网址列表。响应的处理是相同的,除了根据我发出请求的URL更新页面的不同部分,所以我想对每个请求使用相同的回调。

我的问题是第一个请求调用了回调,第一个请求的处理完成之前,第二个请求再次调用了回调。这在一定程度上是可以预料到的,但我认为它会在第二次完成时回过头来处理第一个请求。即使将async设置为false,也会发生这种情况 - 显然,当调用回调时,同步部分会停止。

我发现的唯一解决方案是在回调中发出第二个请求。还有更好的方法吗?

以下是问题代码:

function doStuff() {
   // populate a var urls array with data from user input
   var urls = new Array();
   // ... code to populate urls ...

   // loop through urls and send requests
   for (var i = 0; i < urls.length; i++) {
       $.ajax({url: urls[i],
               success: handleResponse,
               dataType:'html'});
   }
}

function handleResponse(data) {   
    url = this.url;
    // process based on url
}

1 个答案:

答案 0 :(得分:0)

jQuery Deferred对您的情况非常有用