同步:提交后等待服务器的响应,接收服务器返回的数据后再执行下面的代码
异步:与上面相反,提交后继续执行下面的代码,而在后台继续监听,服务器响应后有程序做相应处理,异步的操作好处是不必等待服务器而可以继续在客户端做其它事情。可以简单的理解认为同步是单线程的异步是多线程的
在使用异步请求时,有时需要将异步请求的结果返回给另一个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 ; }
异步请求方式:
$.ajax({ url : 'your url', data:{name:value}, cache : false, async : true, type : "POST", dataType : 'json/xml/html', success : function (result){ do something.... } });
同步请求方式
$.ajax({ url : 'your url', data:{name:value}, cache : false, async : false, type : "POST", dataType : 'json/xml/html', success : function (result){ do something.... } });