代码改变世界

1.5 EcShop之路-AJAX

2009-08-07 11:20  DQ  阅读(992)  评论(1编辑  收藏  举报

         本文版权归李德全所有,转载请注明!

        坦率的讲,Ajax并不是什么新鲜玩意。与这个词相关的最新的术语可能就是“XMLHttpRequest对象”,不过它在IE5时就出现了。Ajax是一种客户端方法,可以与J2EE.NETPHPRuby等交互,它不关心服务器是什么。老李在06年时接触过Ajax,做的是一个车辆卫星定位系统,这个系统涉及到很频繁的客户端地图异步请求,Ajax提供了完美的解决方案,不过老李当时使用的是ASP.NET Ajax FrameWork(微软出的一套框架集)。

         提起Ajax一定要说它的四大护法,JavaScriptXMLHttpRequest对象、DOMCSSJavaScript就像胶水一样把这四大护法粘合在一起,定义应用的工作流和业务逻辑。JavaScript通过操作DOM来改变和刷新用户界面,不断的重绘和重新组织显示给用户的数据,并且处理用户基于鼠标和键盘的交互(事件模型)。CSS当然是提供外观的了,通过JavaScript的操作,可以给用户非常丰富的视觉冲击。XMLHttpRequest是一种浏览器内嵌的原生态对象,通过它可以与服务器进行异步的通信。

         什么?你想让老李再清楚的解释下上面四个名词?别开玩笑了,以上哪个部分拿出来都可以写本书,岂是老李用几百字就能说清楚的。不过老李还真不建议你去啃书本,这样,你可以下载个FireBug,然后随便找个网站研究一下,如果有不懂的就在baidu上搜一搜,相信还是没问题的。

       为什么要用Ajax?因为我们要构建一个富客户端!

       什么是富客户端?第一,它是“富”的;;第二,它是“客户端”。

       别着急打我,这不是老李说的,是大名鼎鼎的“Dave Crane”说的。下面解释一下其含义。“富”是指客户端的交互模型,要有多样化的输入方式和符合人类直觉的及时反馈手段。如果浏览器中的网站能提供像普通桌面应用程序那样的功能,那就是富客户端的完美境地(但不能太富,会过犹不及)。

       使用Ajax有四个基本原则,听起来可能会有点刺耳:

  1. 浏览器中的是应用而不是内容。
  2. 服务器中交付的是数据而不是内容。如向购物车中添加一件物品的时候,服务器真正需要响应的仅仅是更新一下购物车中的价格,而不是要把整个页面文档重新生成再发给浏览器。
  3. 致力于使用户交互变得流畅和连续。如用户填写注册信息时,我们会随时提醒他用户名是否被占用,而不是在用户点击提交以后再返回告诉他用户名不可用。
  4. 有纪律的严肃编程。这个主要是真的JavaScript来说的,相信用过JavaScript的人一定会对它很冒火,尤其是源代码越来越庞大的时候。

 

JavaScript

JavaScript是通用的脚步语言,用来嵌入在某种应用之中。Web浏览器中嵌入的JavaScript解释器允许通过程序与浏览器的很多内建功能进行交互。Ajax应用程序就是使用JavaScript编写的。

CSS

中文名:层叠样式表。CSSWeb页面元素提供了一种可重用的可视化样式定义方法。它提供了简单而又强大的方法,以一致的方式定义和使用可视化样式。在Ajax应用中,用户界面的样式可以通过CSS独立修改。

DOM

中文名:文档对象模型。DOM以一组可以使用JavaScript操作的可编程对象展现出Web页面的结构。通过使用脚本修改DOMAjax应用程序可以在运行时改变用户界面,或者高效的重绘页面中的某个部分。

XMLHttpRequest

XMLHttpRequest对象允许Web程序员从Web服务器以后台活动的方式获取数据。数据格式通常是XML,但是也可以很好的支持任何基于文本的数据格式。当然也可以通过WebService通信,这个是后话。

Ajax关键元素描述表)