ajax的同步与异步

Posted 无所不能的齐天大圣

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ajax的同步与异步相关的知识,希望对你有一定的参考价值。

问题:
页面进行加载实现 loadding的效果 时  ajax结束 之后loadding 出现 未达到效果

ajax的请求方法中分两种方式执行  同步和异步

同步的意思是当JS代码加载到当前AJAX的时候会把页面里所有的代码停止加载,页面出去假死状态,当这个AJAX执 行完毕后才会继续运行其他代码页面假死状态解除。
 异步当ajax发送请求后,在等待server端返回的这个过程中,前台会继续 执行ajax块后面的脚本,直到server端返回正确的结果才会去执行success,也就是说这时候执行的是两个线程,ajax块发出请求后一个线程 和ajax块后面的脚本(另一个线程)

jquery的async:false,这个属性 ,默认是true:异步,false:同步。

同步:
$.ajax({

        type: "post",

       url: "path",

       cache:false,

       async:false,

        dataType: ($.browser.msie) ? "text" : "xml",

         success: function(data){

        }

})
使用情况:
我们这一步请求的结果是下一步请求的前提,只有知道这一步请求的结果用户以后所做的才有意义
有了这个属性可以相对的减少代码运行书序问题,但是如果用的太多,页面假死次数太多。这样反而导致用户体验不佳


异步:

$.ajax({

        type: "post",

       url: "path",

       async:true,

        dataType: ($.browser.msie) ? "text" : "xml",

         success: function(data){

        }

})

ajax的优点:

 传统的web应用允许用户填写表单,请求服务器处理传来的表单之后返回的是个新的网页,浪费带宽使得用户界面的相应比本地应用慢很多
 
 快:
 ajax值传递仅向服务器发送并取回必需的数据,客户端采用javascript处理来自服务器的响应,因为在服务器和浏览器之间交换的数据大量减少。同时很多的处理工作可以在发出请求的客户端机器上完成,所以Web服务器的处理时间也减少了。

无刷新更新数据:
就是能在不更新整个页面的前提下维护数据。这使得Web应用程序更为迅捷地回应用户动作,并避免了在网络上发送那些没有改变过的信息

ajax的缺点:

AJAX干掉了Back和History功能,即对浏览器机制的破坏。

在ajax动态形成页面额情况下,无法回到前一个页面的状态,浏览器仅能记下历史记录中的静态页面。
用户希望通过浏览器的后退按钮来取消之前行为,ajax的请求是使界面做不到的。
解决办法: 在用户点击后退的按钮访问历史记录时,穿件和隐藏一个iframe 重现页面的变更。


AJAX的安全问题
出现在跨域站。

以上是关于ajax的同步与异步的主要内容,如果未能解决你的问题,请参考以下文章

ajax同步与异步的区别

Ajax的同步与异步

Ajax-原生Ajax详解-同步与异步底层

ajax的同步与异步

ajax同步与异步

.Ajax(async异步与sync同步)