js中同步与异步处理的方法和区别总结

来源:互联网 发布:超级玛丽c语言源代码 编辑:程序博客网 时间:2024/05/22 15:44
在使用异步请求时,有时需要将异步请求的结果返回给另一个js函数,此种情况下会出现未等异步请求返回请求结果,该发送请求所在js函数已经执行完后续操作,即已经执行return ,这样会导致return的结果为空字符。 

总结:若要在使用ajax请求后处理发送请求返回的结果,最好使用同步请求。 

例如:以下例子会出现返回结果不正确的情况,因为ajax异步请求还未执行完,函数已经执行return了, 
代码如下:

function fn(){ 

var result = " "; 

$.ajax({ 
url : 'your url', 
data:{name:value}, 
cache : false, 
async : true, 
type : "POST", 
success : function (data){ 
do something.... 

result = .... 


// 对ajax中返回的data进行处理 ,也会出错 

return result ; 


1 异步请求方式: 
代码如下:

$.ajax({ 
url : 'your url', 
data:{name:value}, 
cache : false, 
async : true, 
type : "POST", 
dataType : 'json/xml/html', 
success : function (result){ 
do something.... 

}); 

2 同步请求方式 
代码如下:

$.ajax({ 
url : 'your url', 
data:{name:value}, 
cache : false, 
async : false, 
type : "POST", 
dataType : 'json/xml/html', 
success : function (result){ 
do something.... 

});