首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JQuery队列和脱队列

JQuery队列和脱队列
EN

Stack Overflow用户
提问于 2011-06-24 14:16:14
回答 2查看 165关注 0票数 0

我有多个jquery ajax调用,它们在某种程度上是相互依赖的。这两种方法都是在不同时间在页面加载时触发的(在调用getData之前调用showData,而showData依赖于首先调用getData )。

在一些客户端上,showData首先运行于getData之前。

  1. 我如何重新创建这个错误,因为我们没有看到这种情况在任何地方发生。这似乎取决于服务器上的负载,但我们无法确认这一点。
  2. 为了解决这个问题,我知道我可以使用Jquery的queuedequeue。但是,在证明方案中,我需要在排队基础结构之外运行这个程序。例如,我的getData如下所示: 函数getData() { $.ajax(//options) }函数showData() { $.ajax(//options) }

有时,我需要执行这两种方法(首先调用getData ),但在某些情况下,它们彼此独立,不调用getData而不调用showData

如果我排队,我还能单独打电话给他们吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-06-24 14:22:46

我认为您应该使用递延对象类型,而不是使用jQuery 1.5+中可用的队列:

代码语言:javascript
复制
function getData() {
    return $.ajax(...);
}

function showData() {
    return $.ajax(...);
}

var gd = getData();

if (showDataNeeded) {
    // only call showData() when getData() has finished
    gd.done(showData);
}
票数 0
EN

Stack Overflow用户

发布于 2011-06-24 14:21:13

为什么不像这样在成功回调时将showData附加到getData上呢?

代码语言:javascript
复制
function getData(){
$.ajax({
  url: "/your.url",
  success: showData
});
}

function showData(){
  // foo bar here
}

这还涉及这样一个事实:除非showData 成功,否则您可能不想调用 getData

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6469070

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档