一.AJAX是什么?
Ajax原理
1 AJAX技术在1998年前后开始应用于Web,之后经由Google把它发扬光大。如今AJAX最经典、有名的代表作有 Google Suggest、Google Maps、Gmail、YahooFilkr及Microsoft MSN Space等等。
JavaScript在传统的作法是,你的档案或数据库来自server端或是要送到server,你可以用HTML窗体,并用GET或POST的方式透 过submit按键将数据送到server端,然后等待响应讯息。但是使用AJAX,你可以使用JavaScript的XMLHttpRequest 对象跟server做沟通,可以藉由从server响应的数据,直接更新全部或部份的页面。
AJAX的优点
a. 不必更新全部网页,可更新部份页面。
b. 优化了browser和server之间的沟通,减少不必要的数据传输、时间及降低网络上数据流量。
c. 平衡了前、后端的负载,原本数据大多由后端负责处理,借由AJAX让客户端分担些工作,减低了后端的负载。
AJAX的缺点
a. browser的通用性,每个user端的浏览器不尽相同、版本也不一致,有可能会造成无法动作问题。
b. 客户端会过肥,太多程序代码在客户端也会造成开发上的成本。
c. 可能会暴露服务端,有可能被恶意攻击、窜改,而造成安全上的漏洞。
AJAX的运用
为什么AJAX适合用于装载作业呢? 传统的网页数据更新,大多是在server端数据更新后便将数据送回client端的browser,当browser得到更新的请求时才会将网页内容更 新。当user执行装载作业后,作业的状态讯息尚未回传,此时若再进行下个作业,往往会造成状态讯息遗失。也正因为装载系统还需要控制前端的水泥装载,设 备间的状态一有变动,网页内容要能做到及时更新,使网页中的 embedded object 与多部硬设备间的沟通一直保持连结。在考虑多部硬件操作不会干扰彼此下,采用Ajax可以使整个作业流程更加顺畅、合理。
例如:当user想要做水泥装载时,按下装载按键时,如果使用JavaScript去呼叫客户端的com组件,可能会因为装载需要等候一段时 间,导致网页整个当掉,也影响到其它按钮的失效。这时若借用AJAX的技术作为辅助,AJAX的每次动作就会用XML Http Request跟server做沟通,待server响应后,接收响应数据更新Model状态、数据库及网页页面,这样一来user不用一直等待实际装载 的时间,也不会造成页面按钮失效。
AJAX的应用并非只在水泥装载这一项,目前也运用在其它功能及系统上。考虑系统整体的实际使用面,AJAX解决了数据延迟的问题,也改善了数据传输的速度,使得各营运据点能提供更快速的服务。
2 DHTML并不是一门新的语言,它只是HTML、CSS和客户端脚本(例如JavaScript)的一种集成。
Ajax (Asynchronous Javascript and XML——异步Javascript + XML)由 HTML、JavaScript™ 技术、DHTML 和 DOM 组成,这一杰出的方法可以将笨拙的 Web 界面转化成交互性的 Ajax 应用程序。本文的作者是一位 Ajax 专家,他演示了这些技术如何协同工作 —— 从总体概述到细节的讨论 —— 使高效的 Web 开发成为现实。他还揭开了 Ajax 核心概念的神秘面纱,包括 XMLHttpRequest 对象。
五年前,如果不知道 XML,您就是一只无人重视的丑小鸭。十八个月前,Ruby 成了关注的中心,不知道 Ruby 的程序员只能坐冷板凳了。今天,如果想跟上最新的技术时尚,那您的目标就是 Ajax。
但是,Ajax 不仅仅是一种时尚,它是一种构建网站的强大方法,而且不像学习一种全新的语言那样困难。
但在详细探讨 Ajax 是什么之前,先让我们花几分钟了解 Ajax 做什么。目前,编写应用程序时有两种基本的选择:桌面应用程序和Web 应用程序。两者是类似的,桌面应用程序通常以 CD 为介质(有时候可从网站下载)并完全安装到您的计算机上。桌面应用程序可能使用互联网下载更新,但运行这些应用程序的代码在桌面计算机上。Web 应用程序运行在某处的 Web 服务器上 —— 毫不奇怪,要通过 Web 浏览器访问这种应用程序。
不过,比这些应用程序的运行代码放在何处更重要的是,应用程序如何运转以及如何与其进行交互。桌面应用程序一般很快(就在您的计算机上运行,不用等待互联网连接),具有漂亮的用户界面(通常和操作系统有关)和非凡的动态性。可以单击、选择、输入、打开菜单和子菜单、到处巡游,基本上不需要等待。
另一方面,Web 应用程序是最新的潮流,它们提供了在桌面上不能实现的服务(比如 Amazon.com 和 eBay)。但是,伴随着 Web 的强大而出现的是等待,等待服务器响应,等待屏幕刷新,等待请求返回和生成新的页面。
显然这样说过于简略了,但基本的概念就是如此。您可能已经猜到,Ajax 尝试建立桌面应用程序的功能和交互性,与不断更新的 Web 应用程序之间的桥梁。可以使用像桌面应用程序中常见的动态用户界面和漂亮的控件,不过是在 Web 应用程序中。
一 AJAX是什么及原理(What)?
1、先看一个AJAX的应用:
1) 验证用户名是否已经存在
2、AJAX全称是Asynchronous javascript and xml(异步javascript + xml)
(1)同步(sychronous)与异步:
同步:就是客户端发出请求后,客户端不能在该页面上做其它事情,得等着页面刷新(即服务器给客户端反馈)。
异步:就是我客户端发出请求,服务器什么时候反馈回来我管,我可以继续我的第二个甚至更多个请求(也就是在这个页面上我可以继续其它操作),因此比同步的效率要高。
(2)AJAX的原理就是在客户端与服务器端引入一个中间层——Ajax引擎(Ajax engine)改变了Web以前那种提交一次数据就得向Web sever发送一次请求的方式,而是对于用户的每一次请求,变成了对Ajax引擎的一次javaScript调用。浏览器通过加载一个Ajax引擎来取代加载一个 Web页。
(3)Ajax引擎是用JavaScript编写的(也就是说这个引擎是在JavaScript 代码里创建的)。
(4)另外,Ajax是一个客户端技术,不论使用哪一个服务器端技术(JSP、ASP.NET、PHP、Ruby抑或CGI),都能使用Ajax技术。
待续。。。。。。