ajax同步请求与异步请求的区别
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ajax同步请求与异步请求的区别相关的知识,希望对你有一定的参考价值。
ajax 区别:
async:布尔值,用来说明请求是否为异步模式。async是很重要的,因为它是用来控制javascript如何执行该请求。
当设置为true时,将以异步模式发送该请求,JavaScript代码将继续执行而不再等待响应,且必须使用一个事件处理函数来监控请求的响应。
如果将async设置为false,则将以同步模式发送该请求, JavaScript将等接收到响应后再继续执行剩余代码。
这意味着如果响应时间很长,则用户在浏览器收到响应之前是将无法与其交互的。
基于这个原因,Ajax应用程序开发的最佳实践是,使用异步请求来实现数据获取,使用同步请 求来实现与服务器之间发送和接收简单的消息。
这对于想让用户交互等待响应,或希望只接收很少的数据(例如,小于1KB)的应用场景是很有用的。而对于通常的数据量或较大的数据量而言,最好还是使用异步调用。
例如:以下例子会出现返回结果不正确的情况,因为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.... } });
以上是关于ajax同步请求与异步请求的区别的主要内容,如果未能解决你的问题,请参考以下文章