我有一个函数,可以从两个位置提取数据并将返回的内容放置在向用户显示的模式对话框上。
这两个请求都是异步的,因为它们是跨域的。问题在于我不想在两个请求完成加载之前显示模式。在加载模式之前,如何检查以确保两个请求都已完成?
我尝试将 openModal 函数放置在第二个请求的成功处理程序中,并且当第一个请求在第二个请求之前完成加载时,该函数会起作用,但有时情况并非如此。
这是我的代码的副本:
function loadData(id) {
$.ajax({
type: 'GET',
url: 'https://someurl.com/v1.0/controller1/' + id,
dataType: 'jsonp',
success: function(data) {
// Do some stuff to the data
}
});
$.ajax({
type: 'GET',
url: 'https://someurl.com/v1.0/controller2/' + id,
dataType: 'jsonp',
success: function(data) {
// Do some stuff to the data
openModal();
}
});
}
function openModal() {
// Open the modal
}
查看 jQuery 的新版本——1.5。它完全支持您的问题,您可以查看此博客文章来解决您的问题:http://www.erichynds.com/jquery/using-deferreds-in-jquery/ http://www.erichynds.com/jquery/using-deferreds-in-jquery/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)