jQuery-如何在一个ajax调用中调用多个ajax调用

时间:2013-07-30 04:40:34

标签: jquery ajax

在我的Javascript文件中,我有多个ajax调用,我想将所有ajax调用更改为一个ajax调用。这是我的JS代码示例。

var vpnPin = $.ajax({ 
  dataType: "json",
  url: "url",
  async: true,
  success: function(result) {}                     
});  //$.ajax() ends


var vpnDataPlan = $.ajax({ 
  dataType: "json",
  url: "url",
  async: true,
  success: function(result) {}  
});  //$.ajax() ends

如何将多个AJAX调用调用到一个AJAX调用?

2 个答案:

答案 0 :(得分:7)

可以在javascript中使用promises概念。阅读promises and defered

使用上面的例子,可以这样做:

//assuming vpnPin and vpnDataPlan are the deferred object returned from $.ajax.
//As you have done in your example.

$.when(vpnPin, vpnDataPlan).done(function(){
    //work to do after the completion of both calls.
});

还有更多这方面的变化。 RSVP 实现了处理承诺的标准方式。

答案 1 :(得分:3)

大多数情况下都不可能

每个ajax调用都涉及浏览器将信息发送到特定URL的服务器。

如果您将浏览器代码从两个ajax调用减少到一个ajax调用,则服务器将收到较少的信息,浏览器将不会收到它现在获得的某些信息,和/或服务器将执行较少的操作。

如果您控制服务器代码,则可以更改服务器代码,以便能够一步完成这两项操作。只有这样才能更改浏览器代码。