Ajax技术是否即将没落?

在孟岩老师11月21日的blog(http://blog.csdn.net/myan/archive/2006/11/21/1402346.aspx)中说他惊艳于微软公司新近推出的界面开发工具Expression,并且预言基于Web标准(通常即XHTML+CSS+javascript)的界面开发技术很快就会没落。孟岩预测:“最迟不超过2008年,在WPF、Flash(Apollo)等RIA技术的夹攻之下,越来越多的Web应用将同时部署传统Web页面和新的RIA UI。”

对于这个预测,我和一些朋友认为孟岩老师过于乐观了。我预测至少到2010年,基于Web标准的界面开发技术仍然将是Web界面开发的主流技术,而这些技术的集大成者就是Ajax。Ajax技术在最近两年中取得了很大的发展,并且仍然在迅速发展的过程中,现在就断言Ajax技术即将没落还为时尚早。

诚然,从纯技术的角度来看,我们也早就认为XUL/XAML一类使用XML来描述界面组件和布局的技术肯定是Web界面开发技术的发展趋势。W3C今年成立了一个工作组,希望将XUL、XAML、MXML等几种界面描述语言统一为一种标准的格式(http://www.w3.org/2006/appformats/)。所以我们认为孟岩老师所看到的趋势是没有大问题的。从纯技术的角度来看,将来的Web界面开发肯定会发展到这种技术。

然而,能看到趋势当然很重要,但是我们还是需要解决很多现实的问题。我在这里提出几个问题来与大家探讨。

第一个问题是:这种趋势将会以多快的速度成为现实?

技术的发展和演进往往都是一个长期的过程。面向对象开发取代面向过程开发、Java取代C++、Ruby逐渐取代Java都是一个长期的过程。孟岩老师所预测的2年和我所预测的4年似乎相差不大,但是对于我们现阶段所要采取的行动其实影响很大。

即使正如孟岩老师所预言的,这确实是技术发展的趋势又能怎样?我们是否一定要在今天为明天和后天发生的事情而买单。过早为将来发生的事情买单,很可能会代价高昂。这跟炒股差不多,有经验的玩家会在最适当的时机入手。过早入手、过晚入手,都会蒙受损失。在这种趋势成为现实之前,我们是否坐等共产主义的实现?我认为等待并不是一种积极的态度。

第二个问题是:Ajax有何优点?

我认为孟岩老师并没有充分地看到Ajax的优点。孟岩说:“昨天我还在说Ajax是过渡技术,没想到几个小时之后就得到印证。” 其实严格说来,任何的技术都可以称为是过渡技术,但是这并不会妨碍使用这种技术来为用户创造价值。孟岩只看到了使用基于Web标准的界面开发技术开发效率低下的一面。但是目前国内做界面开发的开发者有多少人真正理解了Web标准呢?根据笔者的经验,采用完全的CSS布局,将页面的结构、表现、行为三部分分离开,注重页面各部分的重用。经过一段时间的积累之后,基于Web标准的界面开发完全可以达到比较理想的开发效率。而配合使用Dojo、Scriptaculous、YUI等成熟的Ajax组件库,还可以更进一步提高界面的开发效率。在笔者看来,影响开发效率的问题主要有两个方面:

1 Web界面开发者没有充分理解Web标准。
2 Web界面开发者没有尝试过组件化的开发方式。
相对于其他技术而言,Ajax最大的优点有这三点:

1 Ajax是完全基于Web标准的技术,Ajax所用到的所有的技术都是真正的Web标准。
2 Ajax应用可以毫无障碍地部署到几乎所有的桌面电脑上。
3 Ajax应用的开发和部署成本很低。
对于第一个优点,有人可能会争论说,标准其实并不重要。例如EJB 2.x是标准又如何,现在不是也一样被抛弃了吗?但是这两种标准是不可相提并论的。EJB的标准在推出之时,完全没有经过开发实践的检验,与开发实践严重脱节。然而Web标准却是从开发实践中积累而来的。Ajax所基于的这些Web标准都是先有了非常成熟的应用和成功的商业案例之后才会形成标准。Web标准之所以成为了今天这个样子,是经得起历史考验的。如同TCP/IP标准一样,它仍然会长期沿用下去。

第二个优点其实是第一个优点所派生的。上世纪90年代末,在Web标准组织和W3C的不懈努力下,结束了浏览器大战,各种浏览器都承诺支持真正的Web标准。今天这种支持到了开花结果的时候,结出的果实就是诞生了一种称作Ajax的新技术。正是因为今天所有主流的浏览器都已经能够很好地支持Web标准(通常即XHTML+CSS+JavaScript),而几乎所有桌面电脑上都安装了某种主流的浏览器(IE、Firefox/Mozilla、Opera、Safari、etc.),因此Ajax应用可以无痛地部署到几乎所有的桌面电脑上。尽管今天不同的浏览器对于Web标准某些部分的理解还略有歧义,实现上略有差异。但是只要基于成熟的组件库来做开发,这些差异可以被最小化,已经不会成为开发的障碍。

如果我在这两三年内想建立一个电子商务网站,却只能部署到几百万个安装了XAML render引擎的用户机器上(而不是像Ajax那样几乎所有的桌面电脑)。除非我的脑子坏掉了,我不会做出这样的选择。对于面向互联网的应用而言,基于真正Web标准来做开发,并且随着Web标准及其浏览器实现的发展而演进,是实现最大商业利益的必然选择。

Ajax应用可以被部署到几乎所有桌面电脑上这个事实是其他所有技术多年来梦寐以求而不可达的理想国。另外一种现实的选择是Flash UI,Flash的部署范围也已经达到了足以大规模应用的程度。出于现实的商业考虑,我在几年之内都不会选择基于XAML建造我们的应用,除非它的部署范围达到了某个临界值,并且有朝一日成为真正的Web标准。

第三个优点是因为,开发Ajax应用所需要的工具几乎全部都是开源软件,可以免费获得,因此不必花钱去购买昂贵的开发工具。其实开发简单的Ajax应用,一个主流的浏览器,再加上一个文本编辑器就已经足够了。只要你所开发的代码质量足够高,Ajax应用的部署可以达到完全的零成本。

第三个问题是:基于浏览器和Web标准的开发技术是否一定会没落?

我和孟岩老师的一个主要的分歧在于,我并不认为基于浏览器和Web标准的开发技术一定会没落。其实早在3年之前,当我尝试基于XMLHttpRequest来设计我们的架构和开发我们的应用时,当时已经有很多人预言基于HTML(或者XHTML)+JavaScript的开发方式必然会很快没落,对于我对JavaScript如此热衷很不理解。但是几年过去了,这种开发技术非但没有没落,反而焕发出了勃勃的生机。这是在其没落或灭亡之前的回光返照吗?至少在我看来并不是这样,而是有其内在的规律。正是因为上面我所说到的这种开发技术的优点,今天几乎所有的Web用户都在使用这种技术。有庞大用户量广泛使用的技术必然会不断发展,而不可能很快没落。其实XAML最终是否会取代Ajax,这并不是一个纯技术的考量,而是涉及到整个Web应用生态系统的迁移。今天90%以上(我的保守估计)的Web应用都建立在基于Web标准的界面开发技术之上,轻言这种技术在两年之内必然会没落是不严肃的。单靠微软等几个大公司想要扭转这种长期以来自然形成的状况,谈何容易?我认为不大可能。

时间: 2024-09-07 20:54:55

Ajax技术是否即将没落?的相关文章

争论:Ajax技术是否即将没落?

ajax 在孟岩老师11月21日的blog(http://blog.csdn.net/myan/archive/2006/11/21/1402346.aspx)中说他惊艳于微软公司新近推出的界面开发工具Expression,并且预言基于Web标准(通常即XHTML+CSS+javascript)的界面开发技术很快就会没落.孟岩预测:"最迟不超过2008年,在WPF.Flash(Apollo)等RIA技术的夹攻之下,越来越多的Web应用将同时部署传统Web页面和新的RIA UI." 对于

asp.net中ajax技术是否可以实现停止服务器端正在运行的按钮事件

问题描述 asp.net中ajax技术是否可以实现停止服务器端正在运行的按钮事件 给予B/S的webform项目 在服务器端有一个按钮事件 执行时间较长 所以就添加了一个按钮用来可以随时停止正在运行的耗时较长的按钮 问题是那个正在服务器端运行的按钮是否可以被其他按钮终止呢?求解答 解决方案 不可以.首先将长时间操作的任务放在按钮事件中就是错误的.按钮事件在页面回传前调用,ajax回发根本在页面加载后.你应该用消息队列.后台服务去执行长时间的任务. 解决方案二: 这个理论上是可以实现的. 服务器端

探讨:利用AJAX技术提高搜索引擎排名

描述 嵌入在你的web页面中的导航元素能够降低你的搜索引擎评价排名并且降低你的网站的响应性能.本文作者想同你一起探讨如何使用AJAX技术来解决这两个问题. 许多设计良好的web站点都包含大量的与实际内容相联系的可导航信息.用于导航的HTML标记能影响你的搜索引擎评价,而且能够改进访问者的页面下载体验感.在本文中,你会看到如何使用AJAX来创建更为集中的更快速加载的web页面. 一. 分离导航与内容 让我们使用一个例子作为开始.请考虑你现在阅读的文章,它有下列一些内容: · 一个其上有一些预定义的

创建基于AJAX技术的Scribble应用程序

简介 ASP.NET Atlas是一套丰富的类库,用于ASP.NET开发AJAX风格的应用程序.本文试图解说Atlas框架的一般性特征,由于Atlas是一个庞大的库,故本文集中探讨Atlas的两个最重要的特征: 1. 能够从客户端脚本中调用服务器端web服务 2. 使得开发跨浏览器兼容的JavaScript代码相当容易 通过对这两个特征的介绍,读者朋友可以熟悉Atlas类库的使用方法. 背景 MFC Scribble应用程序是学习MFC编程的著名例子之一.Scribble应用程序允许用户使用鼠标

前端Ajax技术原理

ajax所包含的技术 大家都知道ajax并非一种新的技术,而是几种原有技术的结合体.它由下列技术组合而成. 1.使用CSS和XHTML来表示. 2. 使用DOM模型来交互和动态显示. 3.使用XMLHttpRequest来和服务器进行异步通信. 4.使用javascript来绑定和调用. 在上面几中技术中,除了XmlHttpRequest对象以外,其它所有的技术都是基于web标准并且已经得到了广泛使用的,XMLHttpRequest虽然目前还没有被W3C所采纳,但是它已经是一个事实的标准,因为目

一日精通Ajax技术

Ajax这个名称怎么来的,本人也不得而之了,大概是(Active Javascript Action Xml)吧,说白一点就是运用了 javascript.xmlhttp和xmldom技术及网站后台来处理用户的一些操作的方法吧. 那么本人就分三步来说明如何使用 Ajax 技术来做开发. 一.用 javascript 操作 xmlhttp 对象 二.服务器部对xmlhttp请求的响应(PHP范例) 三.xmldom 的使用方法 先说第一部份: 一.用 javascript 操作 xmlhttp 对

用ajax技术制作在线歌词搜索功能

最新制作完成的在线歌词搜索功能,利用ajax技术,无刷新显示歌词,只需要输入你要查找的歌曲名或歌词.界面还不是很好看,完善中......  1<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 2<html xmlns="http://www.w3.

AJAX技术基础介绍

ajax 基于XML的异步JavaScript,简称AJAX,是当前Web创新(称为Web2.0)中的一个王冠.感谢组成AJAX的各种技术,Web应用的交互如Flickr, Backpack和Google在这方面已经有质的飞跃.这个术语源自描述从基于网页的Web应用到基于数据的应用的转换.在基于数据的应用中,用户需求的数据如联系人列表,可以从独立于实际网页的服务端取得并且可以被动态地写入网页中,给缓慢的Web应用体验着色使之像桌面应用一样. 虽然大部分开发人员在过去使用过XMLHttp或者使用I

解开Ajax技术生命中的达芬奇密码

ajax 现在,Ajax技术发展势头迅猛,开发者已经建立了一个调用大量客户端javascript.不断增长的.复杂的系统.因此,在JavaScript上尝试OO技术便成为了管理复杂性的一种手段.在此过程中,多数开发者很快便认识到:JavaScript是一种原型化的(prototypical)语言,它缺少OO自身带来的多种便利. 几乎每位在开发JavaScript时尝试应用面向对象技术的开发者,或多或少都会问自己一个问题:"如何调用父类(super class)的方法?"在Ajax技术还