几个问题引发的思考:什么是Ajax?它是干什么的?在什么时候用?同步和异步又是什么?这一连串的问题让我问的我真是彻底伤心啦!按说前几集视频看完后,这几个问题就该解决了,但是自己却还是不懂。可见自己的学习方法真的有问题,有问题就要改嘛,现在就来解决下Ajax几个简单的问题。
什么是Ajax?
AJAX 指异步 JavaScript 及 XML(Asynchronous JavaScriptAnd XML)。Ajax不是一个技术,它实际上是几种技术,每种技术都有其独特之处,合在一起就成了一个功能强大的新技术。
该技术主要包括:
基web标准(standards-based presentation)XHTML+CSS的表示;
使用 DOM(Document Object Model)进行动态显示及交互;
使用 XML 和 XSLT 进行数据交换及相关操作;
使用 XMLHttpRequest 进行异步数据查询、检索;
使用 JavaScript 将所有的东西绑定在一起。
工作原理是什么?
Ajax的核心是JavaScript对象XmlHttpRequest。该对象在InternetExplorer5中首次引入,它是一种支持异步请求的技术。简而言之,XmlHttpRequest使您可以使用JavaScript向服务器提出请求并处理响应,而不阻塞用户。
与传统开发方式对比
传统的web应用允许用户填写表单(form),当提交表单时就向web服务器发送一个请求。服务器接收并处理传来的表单,然后返回一个新的网页,即:发送——等待——返回。在这个过程中不进行任何工作,纯属等待。这个做法浪费了许多带宽,因为在前后两个页面中的大部分HTML代码往往是相同的。由于每次应用的交互都需要向服务器发送请求,应用的响应时间就依赖于服务器的响应时间。这导致了用户界面的响应比本地应用慢得多。
与此不同,AJAX应用可以仅向服务器发送并取回必需的数据,它使用SOAP或其它一些基于XML的webservice接口,并在客户端采用JavaScript处理来自服务器的响应,即:发送——发送——发送。等待的工作没了,将其交给Ajax来完成。这样在服务器和浏览器之间交换的数据大量减少(界面要什么就更新什么,而不是更新整个页面内容),结果我们就能看到响应更快的应用。同时很多的处理工作可以在发出请求的客户端机器上完成,所以Web服务器的处理时间也减少了。
Ajax的优缺点是什么?
优点:
1. 通过异步模式,提升了用户体验
2. 优化了浏览器和服务器之间的传输,减少不必要的数据往返,减少了带宽占用
3.Ajax引擎在客户端运行,承担了一部分本来由服务器承担的工作,从而减少了大用户量下的服务器负载。
缺点:
1.可能破坏浏览器后退按钮的正常行为。
2.使用动态页面更新使得用户难于将某个特定的状态保存到收藏夹中。
3.Ajax的无刷新重载,由于页面的变化没有刷新重载那么明显,所以容易给用户带来困扰――用户不太清楚现在的数据是新的还是已经更新过的。
4.网络延迟——即用户发出请求到服务器发出响应之间的间隔——需要慎重考虑。