我有多个jquery ajax调用,它们在某种程度上是相互依赖的。这两种方法都是在不同时间在页面加载时触发的(在调用getData之前调用showData,而showData依赖于首先调用getData )。
在一些客户端上,showData首先运行于getData之前。
queue和dequeue。但是,在证明方案中,我需要在排队基础结构之外运行这个程序。例如,我的getData如下所示:
函数getData() { $.ajax(//options) }函数showData() { $.ajax(//options) }有时,我需要执行这两种方法(首先调用getData ),但在某些情况下,它们彼此独立,不调用getData而不调用showData。
如果我排队,我还能单独打电话给他们吗?
发布于 2011-06-24 14:22:46
我认为您应该使用递延对象类型,而不是使用jQuery 1.5+中可用的队列:
function getData() {
return $.ajax(...);
}
function showData() {
return $.ajax(...);
}
var gd = getData();
if (showDataNeeded) {
// only call showData() when getData() has finished
gd.done(showData);
}发布于 2011-06-24 14:21:13
为什么不像这样在成功回调时将showData附加到getData上呢?
function getData(){
$.ajax({
url: "/your.url",
success: showData
});
}
function showData(){
// foo bar here
}这还涉及这样一个事实:除非showData 成功,否则您可能不想调用 getData。
https://stackoverflow.com/questions/6469070
复制相似问题