jquery$.ajax()同步与异步区别是什么?
2016-01-24 · 做真实的自己 用良心做教育
1、同步执行的话,会等待后台结果返回,方法才会继续执行下一句
2、异步的话,方法不等后台返回就会继续执行下一句。
举例说明:
$.ajax()其中有一个参数为
async: false,
false为同步
function checkodd(i) {
var returnvalue;
var options = {
type: 'POST',
url: "test.ashx",
data: { "i": i },
async:false,
success: function (result) {
if (result.code > 0) {
returnvalue = "odd";
}
else {
returnvalue = "even";
}
},
dataType: "json",
error: function (result) {
alert("error");
}
};
$.ajax(options);
return returnvalue;
}
同步交互:指发送一个请求,需要等待返回,然后才能够发送下一个请求,有个等待过程;
异步交互:指发送一个请求,不需要等待返回,随时可以再发送下一个请求,即不需要等待。 区别:一个需要等待,一个不需要等待,在部分情况下,我们的项目开发中都会优先选择不需要等待的异步交互方式。
哪些情况建议使用同步交互呢?比如银行的转账系统,对数据库的保存操作等等,都会使用同步交互操作,其余情况都优先使用异步交互。
异步不能在回调之外直接拿到返回的data。
同步会阻塞后面的代码,也就是说假设这个ajax请求要35秒,浏览器就会阻塞住35秒不执行后面的,知道等到ajax请求完成。而且同步不能直接使用jsonp。
同步执行的话,会等待后台结果返回,方法才会继续执行下一句,异步的话,方法不等后台返回就会继续执行下一句。
拓展:
(1)同步是指发送方发出数据后,等接收方发回响应以后才发下一个数据包的通讯方式。
(2)异步是指发送方发出数据后,不等接收方发回响应,接着发送下个数据包的通讯方式。
(3)同步通信方式要求通信双方以相同的时钟频率进行,而且准确协调,通过共享一个单个时钟或定时脉冲源保证发送方和接收方的准确同步,效率较高。
(4)异步通信方式不要求双方同步,收发方可采用各自的时钟源,双方遵循异步的通信协议,以字符为数据传输单位,发送方传送字符的时间间隔不确定,发送效率比同步传送效率低。