首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >jQuery mobile中包含ajax时的函数执行顺序

jQuery mobile中包含ajax时的函数执行顺序
EN

Stack Overflow用户
提问于 2013-02-16 12:30:49
回答 2查看 969关注 0票数 0

我对在jQuery中执行具有ajax调用的函数的方式有疑问。

考虑两个函数。

代码语言:javascript
代码运行次数:0
运行
复制
function auth() {
    $.ajax({
        type: "POST",
        dataType: "json",
        url: API_URL,
        data: {....
        },
        success: function (response) {}
    });
};

function getData() {
    $.ajax({
        type: "POST",
        dataType: "json",
        url: API_URL,
        data: {....
        },
        success: function (response) {}
    });
};

我一个接一个地调用这些函数,如下所示。

代码语言:javascript
代码运行次数:0
运行
复制
auth();
getData();

我的情况是,我只想在完成' auth ()‘之后执行getData(),.I知道我们可以在auth的成功函数中调用getData()。但我想知道的是,如果我一个接一个地调用,这些函数将如何执行,就像我上面显示的那样。

任何形式的帮助都将不胜感激:)谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-02-16 14:03:11

它们将异步执行。通过在调用中设置"async=false",可以让它们等待(同步),如果这是您想要的。

代码语言:javascript
代码运行次数:0
运行
复制
    function auth() {
    $.ajax({
        **async: false,**
        type: "POST",
        dataType: "json",
        url: API_URL,
        data: {....
        },
        success: function (response) {}
    });
};

function getData() {
    $.ajax({
        **aysnc: false,**
        type: "POST",
        dataType: "json",
        url: API_URL,
        data: {....
        },
        success: function (response) {}
    });
};

这将使调用在进入下一个调用之前完成,但通常会在进行调用时锁定浏览器:

async (默认值: true) 类型:布尔值默认情况下,所有请求都是异步发送的(即默认情况下设置为true )。如果需要同步请求,请将此选项设置为false。跨域请求和dataType: jsonp请求不支持同步操作。请注意,同步请求可能会暂时锁定浏览器,从而在请求处于活动状态时禁用任何操作。从jQuery 1.8开始,不推荐将async: false与jqXHR ($.Deferred)一起使用;必须使用success/error/complete回调选项,而不是jqXHR对象的相应方法,如jqXHR.done()或已弃用的jqXHR.success()。

资源JQM站点:http://api.jquery.com/jQuery.ajax/

票数 0
EN

Stack Overflow用户

发布于 2013-02-16 12:37:21

您可以在jQuery中使用。只需返回ajax()结果即可。

代码语言:javascript
代码运行次数:0
运行
复制
function auth() {
  return $.ajax({
        type: "POST",
        dataType : "json",
        url: API_URL,
        data: { ....  },
        success: function (response) {
        }
  });             
};

auth.done(getData);

这将在auth完成时调用getData

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

https://stackoverflow.com/questions/14906959

复制
相关文章

相似问题

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