我遇到了一个问题,开发一个页面,通过使用jquery进行多次Ajax调用来填充其内容, 问题是每个调用都必须等待当前的Ajax调用在它启动之前完成,这会使页面加载速度变慢。
我希望所有Ajax调用都能在不等待其他调用的情况下启动。
我知道$ .when()但问题是我无法将所有调用传递到单个$ .when()中,因为它们都是由不同的单个事件和函数启动的。
答案 0 :(得分:0)
我已经解决了这个问题。 问题不是来自jquery ajax调用,而是来自我自己的函数。
我有这样的功能
function perform_ajax(url,parameters,callback){
//codes to perform jquery ajax here
}
所以,如果我有另一组代码,如
perform_ajax(url1,parameter1,callback1);
perform_ajax(url2,parameter2,callback2);
perform_ajax(url3,parameter3,callback3);
三个代码同步执行,因为它们引用了相同的功能...... 我使用
解决了这个问题async function perform_ajax(url,parameter,callback){
//codes to perform jquery ajax calls
}
但我遇到的问题是落后的可压缩性。
在定义函数之前,有没有办法可以检查浏览器是否支持异步函数?
答案 1 :(得分:-1)
尝试设置
$.ajax({
async:true,
....
})
JQuery文档here
async(默认值:true)类型:Boolean默认情况下,发送所有请求 异步(即默认设置为true)。如果你需要 同步请求,将此选项设置为false。跨域请求 和dataType:“jsonp”请求不支持同步操作。 请注意,同步请求可能会暂时锁定浏览器, 在请求处于活动状态时禁用任何操作。从jQuery 1.8开始, 不推荐使用async:false和jqXHR($ .Deferred);您 必须使用success / error / complete回调选项而不是 jqXHR对象的相应方法,如jqXHR.done()。