我正在开发一个Web应用程序,从几个Web服务中检索数据(假设只有两个简化).必须从一个服务检索的内容不依赖于从另一个服务检索到的内容,因此我可以并行启动
AJAX请求.然后,我需要在两个查询都返回其数据后执行某些操作.由于它似乎是非常平常的事情,我想知道是否有一个良好的形式化和公认的设计模式来做到这一点.到目前为止我在做什么(使用
jquery):
var data1 = null; var data2 = null; $.ajax({ url : url1,success: function(data) { data1 = data; if(data2) perform(); },}); $.ajax({ url : url2,success: function(data) { data2 = data; if(data1) perform(); },}); function perform() { //do interesting stuff on data1 and data2 }
你也喜欢这样吗?
解决方法
你可以这样做
检查:jQuery:api.jquery.com/jquery.when
我们可以使用jQuery的$.when()方法,该方法获取这些“Deferred”对象的列表(所有jQuery Ajax方法返回Deferred对象),然后提供单个回调.
句法
$.when( // Deferred object (probably Ajax request),// Deferred object (probably Ajax request),// Deferred object (probably Ajax request) ).then(function() { // All have been resolved (or rejected),do your thing });
示例:
$.when($.ajax("/page1.PHP"),$.ajax("/page2.PHP")) .then(myFunc,myFailure);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。