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同步请求与异步请求的区别的主要内容,如果未能解决你的问题,请参考以下文章

普通B/S架构模式同步请求与AJAX异步请求区别(个人理解)

AJAX中同步和异步的区别和使用场景

ajax中的async属性值之同步和异步及同步和异步区别

POST和GET以及同步请求和异步请求的区别

同步请求和异步请求区别

js中请求数据的$post和$ajax区别(同步和异步问题)