论坛首页 AJAX版 AJAX

需要将DHTML与Ajax区分开

浏览 1774 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
时间:2007-04-23
这里有几个同学具有丰富的DHTML开发经验,我也向他们学到了一些很好的技巧。不过我感觉在这里大多数同学的关注点主要还是集中在掌握各种实用的开发框架上。这些开发框架固然很重要,善于使用这些框架有的时候可以取得事半功倍的效果。但是这些开发框架只是Ajax的一部分, Ajax还有更加丰富的内容。这些开发框架解决的问题主要还是属于DHTML开发的问题,我其实一直有意识地将DHTML与Ajax加以区分。DHTML是一门很老的技术,在Goodman所著的Dynamic HTML: The Definitive Reference这本1500页的巨著里几乎描述了在浏览器中使用DHTML所能做的一切事情。国内在高水平的DHTML著作的出版方面一直存在着严重的缺失,所以国内真正的DHTML开发高手凤毛麟角也是毫不奇怪的。Dynamic HTML: The Definitive Reference这本书今年下半年将会由博文视点出版,虽然迟到了很多年,但是可以弥补这个领域长期以来的缺失。Goodman所著的另外一本书JavaScript & DHTML Cookbook(篇幅只有前面一本书的大约1/3),也是非常棒的。我在这里要说的是,不要将DHTML与Ajax等同起来,其实你不知道的关于Ajax的东西还有很多。将DHTML与Ajax等同起来是很多人认为Ajax没有新意(过渡技术云云,貌似只有他本人使用的才是终极武器)的主要原因。对于放言已经知道了Ajax的一切的人,我只能耸耸肩一笑置之。

Ajax != 会使用Prototype/Scriptaculous/yui-ext/jQuery/Dojo/DWR/GWT/JSI,Ajax其实代表了一种新的Web应用的开发方式。除了学会使用某种顺手的开发框架外,还需要多关注一下Ajax应用的整体架构,以及Ajax应用的客户端与服务器端的关系,它们之间的交互和数据流。Ajax应用支持一些全新的架构设计(例如REST),这些设计在使用基于HTML表单的交互模式的传统的Web应用中是无法做到的。能够代表Ajax本质的一些思想在《Ajax实战》、《Ajax模式与最佳实践》、《Ajax设计模式》这三本书中有着非常深入的介绍。这些属于整体架构的设计模式和最佳实践方面的东西需引起大家的高度关注。一个高度可伸缩的、可用性良好的Web 2.0应用,主要的力量来自于优秀的架构设计。

Ajax对于Web开发所带来的冲击可以说与DHTML几乎完全没有关系,DHTML技术在很多年前Goodman的两本书出版时就已经成熟了,但是DHTML并没有给Web开发带来多大的冲击。Ajax所带来的新的思想主要是在架构设计方面的。以前的一些传统的Web应用的架构,包括Web MVC/JSF/ASP.NET等等,它们最初的设计都是围绕着基于HTML表单的交互模式展开的,它们在最初的架构设计中完全没有考虑到 XMLHttpRequest这个技术,更不用提REST了。当然REST也完全不是什么全新的架构,Fielding在他2000年的博士论文中就对 REST的设计思想进行的详细的阐述。但是基于HTML表单的交互模式,是难以做基于REST的架构设计的(一个很大的障碍是表单提交只支持GET和 POST两种方法)。直到Ajax这个技术出现后,基于REST的架构设计才在Web开发领域中获得了它应有的地位。REST这种架构设计除了可以被Ajax应用之外,也可以被其他的RIA技术所应用。
   
时间:2007-04-23
dlee的意思就是说掌握AJAX不要眼睛光看着库,要眼光放长远一点,从整个软件的架构角度去掌握AJAX,而AJAX架构风格的软件本身是符合REST的。

不过我其实一直有个问题想借这个机会探讨一下,就是rails框架提供的REST支持基本上和AJAX没有什么关系。dlee如何理解AJAX技术对于REST的作用呢?
   
0 请登录后投票
时间:2007-04-23
是的,有些架构性的变化,如果能充分理解,就能够使自己处在更加有利的位置。即使将来UI技术不使用DHTML,而使用XAML或者其他什么RIA技术,也能够比较容易地转过去。当然,因为历史原因和部署成本的问题,RIA技术要在互联网上完全取代DHTML将是一个漫长的过程,但是这确实是将来Web表现层技术发展的一个趋势。

关于基于REST的架构设计,等我们翻译完Fielding的论文后,所有喜爱Ajax、Rails的朋友一起来开展一个大讨论。现在讨论的时机还不是很成熟。
   
0 请登录后投票
时间:2007-04-23
这篇帖子太好了,说出了我一直想说没敢说的话:ajax可不仅仅是那些特效或者xhr而已
   
0 请登录后投票
时间:2007-04-24
需要多关注一些Ajax应用的架构问题,包括客户端与服务器的关系和交互方式,以及客户端JavaScript代码内部的架构和重用。这里的同学几乎没有人讨论这些深层次的问题,其实这样是很危险的。

当然,我一直对于能作出漂亮复杂DHTML效果和组件的同学感到钦佩,也一直很尊重他们。但是DHTML方面的资源其实网上已经非常多了,包括同学们热烈讨论的基于HTML+CSS开发的Tab实现。如果我作为一个项目的架构师的话,我其实并不是很担心这一块,因为这一块并不会对整个项目的架构造成很大的影响。

大家不要以为我纯粹是为了做软广告,因为上面说的三本书都是我做的。如果你只做一点很简单的效果,抄一点来历不明的HTML/CSS/JS代码也许就足够了,但是如果你要做的是比较复杂的Ajax应用,你需要对于应用的整体架构有一个很好把握才行。除了理解客户端的这些技术,你还要深入理解服务器端的各种技术,最后设计出一种效率最高的整体架构。
   
0 请登录后投票
时间:2007-04-24
目前关心Ajax的人,大多数是从效果入手来看问题的
目前能够打通Server、Browswer两层关系的人,不多。

看书这个事情,对于某些人来说,是很功利的,
工作中如果没有需要,很难会想到去看书的。
   
0 请登录后投票
时间:2007-04-24
功利有的时候是有好处的,可以以比较实际的观点看待问题。
但是不能太功利,太功利就只能吃到一些小鱼小虾了。
   
0 请登录后投票
时间:2007-04-24
其实我是很想让达人们讨论以下,ajax和rest的结合应用的,
不去考虑界面的render,不去考虑server的现有架构,
能够从新的角度展开这个问题。
   
0 请登录后投票
时间:2007-04-24
to weiqingfei:
这就是我们今后一段时间要在这里重点讨论的问题。

先当头棒喝一下,也是为了引起对于这个主题的高度关注。
   
0 请登录后投票
时间:2007-04-24
庄表伟 写道
目前关心Ajax的人,大多数是从效果入手来看问题的
目前能够打通Server、Browswer两层关系的人,不多。

看书这个事情,对于某些人来说,是很功利的,
工作中如果没有需要,很难会想到去看书的。



谁心甘情愿去看自己不喜欢的东西呢?

都是给社会压力所逼迫的, 不工作就没饭吃,如果真是自己感兴趣的东西,Server、Browser这两层自然会去研究,可是目前这样的人很少.
   
0 请登录后投票
论坛首页 AJAX版 AJAX

跳转论坛:
JavaEye推荐