一:Ajax技术简介
Ajax全称为“Asynchronous JavaScript and XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术。Ajax技术是目前在浏览器中通过JavaScript脚本可以使用的所有技术的集合。Ajax以一种崭新的方式来使用所有的这些技术,使得古老的B/S方式的Web开发焕发了新的活力。
Ajax技术之中,最核心的技术就是XMLHttpRequest,它最初的名称叫做XMLHTTP,是微软公司为了满足开发者的需要,1999年在IE5.0浏览器中率先推出的。后来这个技术被上述的规范命名为XMLHttpRequest。它正是Ajax技术之所以与众不同的地方。简而言之,XMLHttpRequest为运行于浏览器中的JavaScript脚本提供了一种在页面之内与服务器通信的手段。页面内的JavaScript可以在不刷新页面的情况下从服务器获取数据,或者向服务器提交数据。XMLHttpRequest的出现为Web开发提供了一种全新的可能性,甚至整个改变了人们对于Web应用由什么来组成的看法。它可以使我们以一种全新的方式来做Web开发,为用户提供更好的交互体验。
与传统的Web开发不同,Ajax并不是以一种基于静态页面的方式来看待Web应用的。从Ajax的角度看来,Web应用应由少量的页面组成,其中每个页面其实是一个更小型的Ajax应用。每个页面上面都包括有一些使用JavaScript开发的Ajax组件。这些组件使用XMLHttpRequest对象以异步的方式与服务器通信,从服务器获取需要的数据后使用DOM API来更新页面中的一部分内容。因此Ajax应用与传统的Web应用的区别主要在三个地方:
1. 不刷新整个页面,在页面内与服务器通信。
2. 使用异步方式与服务器通信,不需要打断用户的操作,具有更加迅速的的响应能力。
3. 应用仅由少量页面组成。大部分交互在页面之内完成,不需要切换整个页面。
由此可见,Ajax使得Web应用更加动态,带来了更高的智能,并且提供了表现能力丰富的Ajax UI组件。这样一类新型的Web应用叫做RIA(Rich Internet Application)应用。
二:Ajax技术给我们带来了什么
1、由C/S到B/S的发展
软件开发,在前几年出现的一个重要革命,就是由C/S方式到B/S方式的转变。
B/S方式的优点,最直接的就是体现在部署、分发上面,不再需要在每个客户机上安装,不再需要不断到客户机上升级,也不再需要支持由于客户机环境带来的种种问题。可以说,B/S的模式,使得应用软件系统随需应变的能力大大提高。同时,B/S应用使得基于广域网的应用变得非常简单,并且基于互联网和https协议就可以达到足够的安全性(远比C/S方式所需要的VPN或WAN要简单得多)。
比如说,典型的ERP系统,即使只有100个用户,由于系统经常要升级,所以使用C/S也不胜其烦。而笔者曾经主持过一个全国性的系统,涉及上万家用户。可以想象,如果是C/S应用,会多少麻烦。
2、B/S方式遇到的困难
B/S方式的优点明显,但还是有很多时候用户不愿意换到B/S方式,主要的困难是下面几个方面:
1) 网络带宽问题:这个问题在局域网应用不存在,但在广域网下就可能是问题。但随着互联网的高速发展和https技术的广泛应用,这个问题应该是越来越小,反之C/S方式在广域条件下应用,是更麻烦的事情,如果不配置VPN,就要去用程序做数据同步。
2) 服务器负载:但实际上随着集群技术的应用和PC SERVER价格的不断降低,这个问题也不是问题。并且如果用户数真的很多,可能B/S反而好做一点,而C/S并不能直接用DB SERVER支撑大用户量,而是还需要一个中间的应用服务层,即C/S/S架构才能支持。
3) 用户易用性:这个才是很多用户权衡时考虑的重点。在一般概念中,B/S的界面远远比C/S的界面用起来不方便。
3、Ajax技术的意义:
知道了B/S方式的困难,我们就清楚了Ajax技术的意义,它使得用户可以在浏览器中象在桌面软件上一样轻松、方便地操作,而且不需要安装插件、控件之类的东西。
我们可以看一下这个例子:(例子在最下面)。如果不说,很容易会认为这是一个C/S程序的界面。但实际上它是基于Ajax技术的一个B/S应用。
可见,有了Ajax技术,就可以使得B/S应用象C/S应用一样好用,解决了阻碍B/S应用取代C/S的最后一块石头,使得Web应用的优势充分发挥出来,从而使这场革命最终完成。就象图形界面最终取代文本界面一样,对Ajax的作用一定不能低估,它必然成为未来应用开发的一个主流。
4、Ajax技术的展望:
现在,Ajax技术还是一个新兴事物。应该说,拿Ajax技术开发,本身技术上已经不是什么问题,主要问题在于Ajax技术还不普及,掌握Ajax技术还有不小的困难,用Ajax开发还远不如做个JSP,ASP一样方便。然而,既然有需求出现,就会有人来提供相应的产品、相应的解决方案,目前已经有了一些基于Ajax技术的开发构件、开发平台出现,不论在.NET下,还是在Java环境下,都有这类产品可以帮助用户很轻松地搭建基于Ajax技术的富客户端应用(或者要富因特网应用RIA),从而使用户可以很轻松地开发出基于Ajax技术的Web应用,就象过去用成熟控件开发C/S应用一样。因此,Ajax技术的应用,应该会有一个飞速的发展。
Ajax示例:
组织机构和权限管理模块,就是采用本平台构建的功能模块。
这些功能强大的页面,除了控件定义之外,所需代码非常之少。就以《职员档案管理》为例,整个页面只在page_onLoad事件中编写了两行代码,用于初始检索数据。
<Event Name="page_onLoad">
var ds=$("Deptds");
ds.moveFirst();
</Event>
PS: 前不久我大哥打算搞一个个人网页,我问他用什么技术开发,他说用Ajax,我原以为是Asp.Net 和 XML... 从而导致我今天在blog上看到有人发Ajax,于是点了看下。 感觉Ajax确实不错,特别是“页面内的JavaScript可以在不刷新页面的情况下从服务器获取数据,或者向服务器提交数据” 这个,我用VB写的超市管理系统就碰到过这个类识的问题。。
评论