第一部分 使用Ajax和Java编程
第1章 Ajax:勇闯新世界
对于第一次接触Ajax,尤其是刚刚接触web开发的人来说,本章可以作为了解后面内容的一个不错的热身。然而,已经具有一些经验,尤其是对AjaX并不陌生的开发人员,可以跳过本章,因为对他们来说本章很可能只是一次复习。我们首先介绍过去大约15年以来应用(尤其是web应用)的发展过程。你会发现,应用程序的基本结构经历了一个有趣的循环。接下来将介绍一些非常不错的AjaX实战示例,并讨论AjaX为什么如此重要,以及它是怎样从根本上改变应用程序开发的。第一个代码示例会以非常简单而基础的方式J~Ajax。我们还会简单地谈及Ajax竞争技术,以及一些已有的使AjaX更加易用的库和工具包。
1.1 Web开发简史:“经典”模型
web刚出现时的确不错。各种各样易记的新单词、词组和术语进入了词典,而且在我们说起这些新词时,感觉它愈发地酷了。随着我们的工作渐渐为人所知,web应用(Webapp)这个词出现了。这些应用程序有点像回到了分时访问方式的大型机时代。它们无论从使用方式还是外观上都不如随后出现的Visual Basic、PowerBuilder和C++“胖客户端”(虽然它们Web应用出现后少了,但仍在使用)那样光彩夺目,而且那些胖客户端完成了并仍然在做很多工作,就像那些旧的分时系统一样。
如果认真考虑一下,就会发现应用程序开发其实走了一个循环。如果按时间从前向后梳理一遍,就会发现这一点。
我们就从稍早的时代开始。在这个时代,应用程序采用了大家基本能够理解的形式。首先用简单的终端仿真设备(我们就不讲实际终端啦)来访问远程运行进程。图1-1所示的屏幕就是这类应用程序的典型例子。
TN3270屏幕还是有些意义,因为它们仍然大量被使用,尤其在商业领域中,任何做过一些大型机工作的人都可以作证。有两件有趣的事情需要注意。第一,注意NINUI(用户界面)的简单特性——它们只是文本,通常限制在80列25行,只有极其有限的数据输入能力——基本上只是可编辑的映射区域。下拉列表、复选框和网格等在这个领域中是完全未知的。如果碰到一个写得很好的应用程序,那么可能幸运地看到如下的实际菜单:
C.创建记录
D.删除记录
E. 编辑记录
如果不走运,有可能会是如下的信息:
……01A7COD9ABABACOO
……89A683E34D79E998
如果你从来没有用过大型机,那么下面简单地介绍一下。在大型机中编辑文件(文件又叫数据集)通常使用叫做Ts0/IsPF的工具。这只是一种文本编辑器,能够在文本显示和十六进制显示间进行转换。上文是内容的十六进制显示,每一行前面的点组成命令区。例如,在以89开头的行上面加入一行,就需要把该行的第一个点替换为i,然后按回车键;如果想删除以01开头的行和刚插入的那一行,就需要把以01开头的行的前两个点换成dd,然后在刚刚插入的行的同样位置也键入dd,再按回车键。(dd用来删除行块,可以使用单个d来删除单行。)
第二点更重要,就是当用户执行了一些需要应用程序响应的动作时会发生什么。很多时候,主机会重绘整个屏幕,包括那些不会因为该操作而改变的部分。每个操作都在主机上执行,基本没有本地处理。甚至对于简单的客户端输入验证也没有本地处理,它仅仅是远程应用程序状态的一个展示。
随着PC的出现,本地处理能力提高了很多,出现了新的趋势。这个时候我们看到,应用程序开始存放在本地而不是中央主机上,至少部分应用程序是在本地执行的。很多时候,整个应用程序本身是在用户使用的机器上运行的。随着微软公司的windows的流行,“胖客户端”开始被人们所熟知,而它实际上很快成了应用程序开发的事实标准。在这种方式中,uI的功能和用户友好性极大地提高了,而集中的中央硬件在很多地方不再那么重要了(数据库服务器之类的不在此碉1)。图1-2中所示的屏幕开始成为规范。
注意,图1-2里的UI元素是多么的丰富。显然,这里的UI已有所改进。“改进”当然是相对的,换个环境它就不是更好。可以想象,那些整天低头输入数据的人可能倾向于使用旧的绿屏幕,因为它们对于键盘输入更加高效。……
展开
——slashdot.org
“本书能为你的开发节省大量时间,并且大大深化你对Ajax技术的理解。”
——javapassion.com
“如果你想使用最新最热门的Ajax技术进行Web开发,本书将是最佳选择。”
——ajaxian.com