在我的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调用?
答案 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调用,则服务器将收到较少的信息,浏览器将不会收到它现在获得的某些信息,和/或服务器将执行较少的操作。
如果您控制服务器代码,则可以更改服务器代码,以便能够一步完成这两项操作。只有这样才能更改浏览器代码。