Ajax同步与异步优缺点与使用


一.什么是同步请求:(false)
       同步请求便是当前发出请求后,浏览器什么都不能作,必须得等到请求完成返回数据以后,才会执行后续的代码,至关因而排队,前一我的办理完本身的事务,下一我的才能接着办。也就是说,当JS代码加载到当前AJAX的时候会把页面里全部的代码中止加载,页面处于一个假死状态,当这个AJAX执行完毕后才会继续运行其余代码页面解除假死状态。 

二.什么是异步请求:(true)
       异步请求就当发出请求的同时,浏览器能够继续作任何事,Ajax发送请求并不会影响页面的加载与用户的操做,至关因而在两条线上,各走各的,互不影响。

通常默认值为true,异步。异步请求能够彻底不影响用户的体验效果,不管请求的时间长或者短,用户都在专心的操做页面的其余内容,并不会有等待的感受。

有人说:既然异步这么好,那所有都用异步好了,同步存在还有什么意义?

       那么,同步适用于一些什么状况呢?
       咱们能够想一下,同步是一步一步来操做,等待请求返回的数据,再执行下一步,那么必定会有一些状况,只有这一步执行完,拿到数据,经过获取到这一步的数据来执行下一步的操做。这是异步没有办法实现的,所以同步的存在必定有他存在的道理。web


Ajax优缺点                                                                                                                                            
Ajax优势和缺点: 
优势:
         传统的web应用容许用户填写表单(form),当提交表单时就向web服务器发送一个请求。服务器接收并处理传来的表单,而后返回一个新的网页。这个作法浪费了许多带宽,由于在先后两个页面中的大部分HTML代码每每是相同的。因为每次应用的交互都须要向服务器发送请求,应用的响应时间就依赖于服务器的响应时间。这致使了用户界面的响应比本地应用慢得多。
       与此不一样,AJAX应用能够仅向服务器发送并取回必需的数据,它使用SOAP或其它一些基于XML的web service接口,并在客户端采用JavaScript处理来自服务器的响应。由于在服务器和浏览器之间交换的数据大量减小,结果咱们就能看到响应更快的应用。同时不少的处理工做能够在发出请求的客户端机器上完成,因此Web服务器的处理时间也减小了。
         使用Ajax的最大优势,就是能在不更新整个页面的前提下维护数据。这使得Web应用程序更为迅捷地回应用户动做,并避免了在网络上发送那些没有改变过的信息。
          Ajax不须要任何浏览器插件,但须要用户容许JavaScript在浏览器上执行。就像DHTML应用程序那样,Ajax应用程序必须在众多不一样的浏览器和平台上通过严格的测试。随着Ajax的成熟,一些简化Ajax使用方法的程序库也相继问世。一样,也出现了另外一种辅助程序设计的技术,为那些不支持JavaScript的用户提供替代功能。
缺点:
           对应用Ajax最主要的批评就是,它可能破坏浏览器后退按钮的正常行为[4]。在动态更新页面的状况下,用户没法回到前一个页面状态,这是由于浏览器仅能记下历史记录中的静态页面。一个被完整读入的页面与一个已经被动态修改过的页面之间的差异很是微妙;用户一般都但愿单击后退按钮,就可以取消他们的前一次操做,可是在Ajax应用程序中,却没法这样作。不过开发者已想出了种种办法来解决这个问题,当中大多数都是在用户单击后退按钮访问历史记录时,经过创建或使用一个隐藏的IFRAME来重现页面上的变动。(例如,当用户在Google Maps中单击后退时,它在一个隐藏的IFRAME中进行搜索,而后将搜索结果反映到Ajax元素上,以便将应用程序状态恢复到当时的状态。)
          一个相关的观点认为,使用动态页面更新使得用户难于将某个特定的状态保存到收藏夹中。该问题的解决方案也已出现,大部分都使用URL片段标识符(一般被称为锚点,即URL中#后面的部分)来保持跟踪,容许用户回到指定的某个应用程序状态。(许多浏览器容许JavaScript动态更新锚点,这使得Ajax应用程序可以在更新显示内容的同时更新锚点。)这些解决方案也同时解决了许多关于不支持后退按钮的争论。 进行Ajax开发时,网络延迟——即用户发出请求到服务器发出响应之间的间隔——须要慎重考虑。不给予用户明确的回应 [5],没有恰当的预读数据 [6],或者对XMLHttpRequest的不恰当处理[7],都会使用户感到延迟,这是用户不欲看到的,也是他们没法理解的[8]。一般的解决方案是,使用一个可视化的组件来告诉用户系统正在进行后台操做而且正在读取数据和内容。浏览器

           一些手持设备(如手机、PDA等)如今还不能很好的支持Ajax; 用JavaScript做的Ajax引擎,JavaScript的兼容性和DeBug都是让人头痛的事; Ajax的无刷新重载,因为页面的变化没有刷新重载那么明显,因此容易给用户带来困扰――用户不太清楚如今的数据是新的仍是已经更新过的;现有的解决有:在相关位置提示、数据更新的区域设计得比较明显、数据更新后给用户提示等; 对串流媒体的支持没有FLASH、Java Applet好;服务器

相关文章
相关标签/搜索