首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何让愚蠢的jquery Ajax调用从不同的事件触发

如何让愚蠢的jquery Ajax调用从不同的事件触发
EN

Stack Overflow用户
提问于 2018-04-05 00:31:21
回答 2查看 33关注 0票数 0

我有一个问题,开发一个页面,通过使用jquery进行几个Ajax调用来填充其内容,问题是每个调用都必须等待当前的Ajax调用完成,然后才能开始,这使得页面加载非常慢。

我希望所有的Ajax调用都能在不等待其他调用的情况下启动。

我知道$.when(),但问题是我不能将所有调用都传递到一个$.when()中,因为它们都是由不同的事件和函数发起的。

EN

回答 2

Stack Overflow用户

发布于 2018-04-06 23:45:41

我已经解决了这个问题。问题不是来自jquery ajax调用,而是来自我自己的函数。

我有一个这样的函数

代码语言:javascript
代码运行次数:0
运行
复制
function perform_ajax(url,parameters,callback){
  //codes to perform jquery ajax here
}

所以如果我有另一组代码,比如

代码语言:javascript
代码运行次数:0
运行
复制
perform_ajax(url1,parameter1,callback1);
perform_ajax(url2,parameter2,callback2);
perform_ajax(url3,parameter3,callback3);

这三个代码同步执行,因为它们引用相同的函数...我使用以下命令解决了这个问题

代码语言:javascript
代码运行次数:0
运行
复制
async function perform_ajax(url,parameter,callback){
//codes to perform jquery ajax calls
}

但我对此的问题是向后紧凑性。

在定义函数之前,有没有办法检查浏览器是否支持异步函数

票数 0
EN

Stack Overflow用户

发布于 2018-04-05 00:39:19

尝试设置

代码语言:javascript
代码运行次数:0
运行
复制
 $.ajax({
        async:true,
        ....
})

JQuery文档here

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

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

https://stackoverflow.com/questions/49656050

复制
相关文章

相似问题

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