咖啡、生活、美女蛇

游离于java和python之间……

常用链接

统计

他山之石

最新评论

《AJAX基础》:新年最值得期待的一本书

        今天上dearbook,突然看到这本书的出版预告,真是欣喜若狂!呵呵,国内总算有资料出版了,期待ing……



 


本书目录

第1章 Ajax简介
1.1 Web应用的发展简史
1.2 浏览器历史
1.3 Web应用的发展历程
1.3.1 CGI
1.3.2 Applet
1.3.3 JavaScript
1.3.4 Servlet、ASP和PHP . . .哦,太多了!
1.3.5 Flash
1.3.6 DHTML革命
1.3.7 XML衍生语言
1.3.8 基本问题
1.3.9 Ajax
1.4 可用性问题
1.5 相关技术
1.6 用法
1.7 设计考虑
1.8 小结
第2章 使用XMLHttpRequest对象
2.1 XMLHttpRequest对象概述
2.2 方法和属性
2.3 一个交互示例
2.4 GET vs. POST
2.5 远程脚本
2.5.1 远程脚本概述
2.5.2 远程脚本的一个例子
2.6 如何发送简单的请求
2.6.1 一个简单的请求例子
2.6.2 关于安全
2.7 DOM Level 3 加载和保存规范
2.8 DOM
2.9 小结
第3章 与服务器通信;发送请求和处理响应
3.1 处理服务器响应
3.1.1 使用innerHTML属性创建动态内容
3.1.2 将响应解析为XML
3.1.3 使用W3C DOM动态编辑页面内容
3.2 发送请求参数
3.2.1 请求参数作为XML发送
3.2.2 使用JSON将数据发送至服务器
3.3 小结
第4章 实现基本Ajax技术
4.1 完成验证
4.2 读取响应首部
4.3 动态加载列表框
4.4 创建自动刷新(Autorefreshing)页面
4.5 显示进度条
4.6 创建工具提示
4.7 动态更新Web页面
4.8 访问Web服务
4.9 提供自动完成(Autocomplete)
4.10 小结
第5章 构建完备的Ajax开发工具箱
5.1 使用JSDoc建立JavaScript代码的文档
5.1.1 安装
5.1.2 用法
5.2 使用Firefox扩展验证HTML内容
5.2.1 HTML Validator
5.2.2 Checky
5.3 使用DOM Inspector搜索节点
5.4 使用JSLint完成JavaScript语法检查
5.5 完成JavaScript压缩和模糊处理
5.6 使用Firefox的Web开发扩展包
5.7 实现高级JavaScript技术
5.7.1 通过prototype属性建立面向对象的JavaScript
5.7.2 私有属性和使用JavaScript的信息隐藏
5.7.3 JavaScript中基于类的继承
5.7.4 汇合
5.8 小结
第6章 使用JsUnit测试JavaScript
6.1 JavaScript提出的问题
6.1.1 测试先行方法介绍
6.1.2 JUnit介绍
6.2 分析JsUnit
6.2.1 起步
6.2.2 编写测试
6.2.3 运行测试
6.2.4 使用标准和定制查询串
6.2.5 使用JsUnit服务器
6.2.6 获得帮助
6.2.7 还能用什么?
6.3 小结
第7章 分析JavaScript调试工具和技术
7.1 用Greasemonkey调试Ajax请求
7.1.1 Greasemonkey介绍
7.1.2 使用Greasemonkey XMLHttpRequest调试用户脚本
7.1.3 使用XMLHttpRequest调试用户脚本检查Ajax请求和响应
7.2 调试JavaScript
7.2.1 使用Firefox JavaScript Console
7.2.2 使用Microsoft Script Debugger
7.2.3 使用Venkman
7.3 小结
第8章 万事俱备
8.1 模式介绍
8.1.1 实现褪色技术(FAT)
8.1.2 实现自动刷新
8.1.3 实现部分页面绘制
8.1.4 实现可拖放DOM
8.2 避免常见的陷阱
8.3 相关的更多资源
8.4 使用框架
8.5 Taconite介绍
8.5.1 Taconite原理
8.5.2 解决方案
8.5.3 Taconite怎么处理内容?
8.6 Dashboard应用介绍
8.7 用Taconite构建Ajax Dashboard
8.7.1 一般特性介绍
8.7.2 设计特性介绍
8.7.3 分析代码
8.7.4 分析天气预报组件
8.7.5 分析标题新闻组件
8.7.6 如何完成自动重新刷新工作?
8.7.7 建立一个更好的Autocomplete
8.8 小结
附录A 开发跨浏览器JavaScript
A.1 向表中追加行
A.2 通过JavaScript设置元素的样式
A.3 设置元素的类属性
A.4 创建输入元素
A.5 为输入元素增加事件处理程序
A.6 创建单选钮
A.7 小结
附录B Ajax框架介绍
B.1 浏览器端框架
B.1.1 Dojo
B.1.2 Rico
B.1.3 qooxdoo
B.1.4 TIBET
B.1.5 Flash/JavaScript Integration Kit
B.1.6 Google AJAXSLT
B.1.7 libXmlRequest
B.1.8 RSLite
B.1.9 SACK
B.1.10 sarrisa
B.1.11 XHConn
B.2 服务器端框架
B.2.1 CPAINT
B.2.2 Sajax
B.2.3 JSON/JSON-RPC
B.2.4 Direct Web Remoting
B.2.5 SWATO
B.2.6 Java BluePrints
B.2.7 Ajax.Net
B.2.8 Microsoft的Project Atlas
B.2.9 Ruby on Rails


Ajax基础

    在Web开发领域,Ajax横空出世,它能提供高度交互的Web应用,与桌面应用所差无几,而且能够在所有当前Web浏览器上部署,而无需特殊的插件。Ajax建立在现有的一些Web技术基础之上,如JavaScript、HTML和CSS,可以与你喜欢的服务器端语言结合使用。《Ajax基础》解释了如何有效地结合这些技术,在已有的Web应用和将来开发的新应用中实现Ajax。与你一样,我们只是开发人员,而不是拓荒者,我们的任务是构建Web应用,让客户受益。随着Web的不断发展,客户越来越需要得到更有表现力、更漂亮的界面。

    早期有关Ajax的宣传都围绕着它在一些Internet大户中的使用,如Google和Amazon。不过,尽管一些主要的软件开发公司已经走在前面,率先尝试了Ajax,但这并不意味着你的应用也同样能从这个技术中获益。你已经知道如何开发Web应用,所以这不是我们要介绍的内容,这本书只是使用一些重点突出的具体例子介绍Ajax工具和技术,它们能为你的应用赋予新的生命。利用这本书,再加上已有的开发经验,你也能在应用中使用Ajax技术,让最终用户有更丰富的体验。

    我们第一次发现Ajax的潜力时,就知道需要在我们自己的应用中充分利用这个技术。经过一段时间的摸爬滚打,我们学到了一些难得的经验,我们认为这些知识有必要与开发群体共享。通过学习这本书,你能很容易地扩展你的应用来使用Ajax,而且这一过程将乐趣无穷。我们衷心地希望,有一天能看到你开发的基于Ajax的一流应用!


引言

    几年前,我们开始构建Web应用时,认识到我们发现了一个“宝贝”,这简直就是软件开发的“圣杯”。以前我们一直在开发胖客户应用,这种应用每次发布一个新版本时,总是需要一个冗长的安装过程。我们的应用要部署到分散在全国各地的数百个用户,让我们沮丧的是,这个复杂的安装过程很容易出错,不仅让开发人员很头疼,用户也非常不满。
    能通过浏览器来部署应用,这看上去相当不错,因为这样一来,就不再需要在客户计算机上安装软件了。所以,与许多其他组织一样,我们公司也很快转型,开始在Web上部署应用。
    尽管部署起来相当容易,但Web应用也有自己的问题。在用户看来,最突出的问题是用户界面没有了以往丰富的交互性。Web应用仅限于使用HTML提供的一组基本部件,而这是很有限的。更糟糕的是,与服务器交互需要完全刷新页面,很多用户已经熟悉了功能强大的客户-服务器应用,对他们来说,这一点很让人不快。
    我们以前一直认为,Web应用中只要刷新页面就必须完全刷新,好像这是在所难免的,所以往往想方设法地避免页面刷新;我们甚至还考虑过编写一个Java applet,由它处理浏览器和服务器之间的通信。不过,随着越来越多Web应用的部署,我们很快发现,用户已经习惯了这种完全页面刷新,这么一来,我们也不再那么强烈地想要另辟蹊径了。
    转眼过去了5年。如今开始使用XMLHttpRequest对象在浏览器和服务器之间完成异步通信,其实甚至在造出Ajax这个词之前,这种方法就已经有了,归功于Google Suggest和Gmail等应用的出现,这种方法在开发群体中产生了很大反响。早在多年以前,Internet Explorer中就已经使用了XMLHttpRequest对象,但是如今它还得到了其他浏览器的支持,这是一个重大突破。我们在一个已开发的应用中增加了Ajax功能(这个应用不是精心挑选的,只是当时碰巧在开发这个应用),结果令我们震憾不已,所以我们都有一种想法“嘿,要是有人写一本有关Ajax的书就好了”。因此,这本书应运而生。



本书概述

    为什么写《Ajax基础》这本书?就是为了介绍你可能需要的所有工具,要在现有的或者将来的应用中增加Ajax,这些工具是非常有用的。在写这本书时,我们有一个座右铭:“你需要知道的我们都会介绍,不需要你知道的我们绝口不提” 。我们认为,作为这本书的读者,你应该已经是一个有经验的Web应用开发人员。正因如此,我们会把重点放在你很可能不了解的新内容上:Ajax及相关的工具和技术。我们不会花大量篇幅来谈服务器端语言,因为我们认为你会使用自己选择的工具集来开发服务器端功能,在这方面你不需要我们的帮助。另外我们也不会浪费时间来讲如何构建企业规模的应用,这样的应用很少使用Ajax。相反,重申一次,我们的重点只是Ajax以及相关的工具和技术。
    这本书中的例子特意做得很小,而且很紧凑。它们会尽可能简洁地展示一个或两个重要的Ajax概念。我们认为,作为一个有经验的Web开发人员,你应该能熟练地把我们展示的内容推广到你自己的环境中;因此,我们不会在例子中“堆放”对你没有多大用处的信息。
    第1章讨论了Web应用开发的发展历程,从过去,谈到现在,并且预见了将来。如果你了解了开发技术过去是什么样子,就能更容易地认识到它们将来会有怎样的发展。
    第2章介绍了XMLHttpRequest对象。这个Ajax概念你可能不太熟悉,所以我们专门用一章来解释XMLHttpRequest对象的属性和方法。如果你像我们一样,很可能最近才注意到XMLHttpRequest对象,不过,要知道早在几年前Internet Explorer中就已经有了XMLHttpRequest对象。因此,我们会用充分的笔墨讨论XMLHttpRequest对象,并说明它能做什么。
    第3章开始谈到Ajax的具体内容。这一章将讨论XMLHttpRequest对象可以采用不同方法与服务器通信。我们讨论了可以使用XML、纯文本甚至JavaScript Object Notation (JSON)作为传输介质,并介绍了可以采用哪些方式与XMLHttpRequest对象结合使用。在这一章的最后,你就能熟练地使用XMLHttpRequest对象与服务器端通信,而不必让用户看到页面完全刷新。
    作为开发人员,我们总是要花很多时间学习如何使用一种新技术,但并不知道怎么实际应用。第4章将解决这个问题,在此会展示一系列可以使用Ajax技术的场景。如前所述,每个例子都很小,很紧凑,这样你能更好地理解相应内容,而不用在大堆不必要的信息中搜寻。
    第5、6和7章对于Ajax新手来说尤其重要。我们不希望你仓促上阵,先要配备合适的工具和技术,再考虑在应用中增加Ajax。利用第5章介绍的工具和技术,可以简化Web应用的开发。这些工具和技术可以帮助你得到质量更高、遵循行业标准而且将来更易于维护的代码。
    测试驱动开发(Test-driven development,TDD)使我们开发应用的方法发生了根本改变。在编写代码之前先编写单元测试,这样就能确保你写的代码会正常工作,并能大大提高代码的质量。利用一个单元测试集,可以确保做出修改后所有代码还能按预期的那样工作,从而使得将来的修改更为容易。Ajax同样不能避开TDD,而且TDD的好处再强调也不为过,所以我们专门用一章来讨论。由于Ajax主要是一个基于浏览器的技术,第6章将展示如何对你的JavaScript代码应用TDD。
    谈到JavaScript,如果你想使用Ajax,就必须至少写过一些JavaScript。许多开发人员都不喜欢JavaScript,说它缺少一些重要的生产性工具,如调试工具,所以没有多大的用处。如今这种说法已经不成立了。第7章讨论了一些调试工具和技术,如果出现问题,可以用这些工具和技术来跟踪,并且尽快、尽可能容易地加以解决。你不用再担心使用JavaScript时出现问题而不能诊断,也不用因此对JavaScript退避三舍。
    Ajax是一个发展很迅猛的技术,在写这本书期间,Ajax已经得到了飞速的发展。第8章把所有的内容综合在一起,讨论了新兴的Ajax开发模式和框架,并提供了一些在线资源。另外,第8章还给出了一个完整的例子,不仅显示了一些高级Ajax技术,还展示了使用现成的Ajax框架来完成Ajax开发是何等容易。通过使用框架,你不用再做Ajax开发平常的一些烦琐任务,这样就能把重点集中在业务逻辑上,而不是Ajax的细节上。
    最后,附录A描述了不同浏览器上W3C DOM和JavaScript实现中存在的一些特异之处和不一致的地方,并提供了一些方法来克服这些问题。附录B对最流行的Ajax框架和库做了一个总结,这些框架和库有助于Ajax技术的推广。随着Ajax越来越流行,框架也肯定会越来越多,所以让我们拭目以待新的框架和其他开发工具的出现吧。


作者简介

RYAN ASLESON 是一位软件开发人员,他工作并且居住在明尼苏达州的双城地区。从1998年以来,Ryan就一直在从事Web应用的构建,对JavaScript和Web开发工具有着丰富的经验。他成功地帮助所在组织完成了转型,从基于servlet的内容创建转向了JSP,另外还维护着建立在Java企业版基础上的一个公司Web应用框架。他还是Taconite框架(taconite.sf.net)的缔造者之一,这个框架大大简化了Ajax的开发。Ryan还对性能调优和基于标准的开发卓有兴趣。如果不工作,Ryan喜欢与他的家人在一起,还热衷于户外活动,如钓鱼、打猎和水上运动等等。

NATHANIEL T. SCHUTTA 是一位高级软件工程师,生活在明尼苏达州的双城地区,在开发基于Java企业版的Web应用方面经验相当丰富。他拥有明尼苏达州大学软件工程理学硕士学位,最近几年特别关注用户界面设计。Nathaniel对公司界面原则的建立做出了很大贡献,而且参与过许多Web应用的开发。他很早以前就是Computing Machinery协会人机交互特殊兴趣小组的成员,而且是一位Sun认证Web组件开发人员。Nathaniel认为,如果用户不明白你的应用,那肯定是你哪里做错了。除了在用户界面领域的工作外,Nathaniel还是开源Taconite框架的合作者之一,曾参与过两个企业Java框架的工作,开发过培训资源,并指导过多个研究小组。如果天气暖和,他会在家乡明尼苏达州短暂休息,只要他的妻子没有怨言,总会在高尔夫球场上看到他的身影。他目前主要研究Ruby、Rails和(最近才转向)Mac OS X。他的想法总是天马行空,如果想更多地了解,请访问他的blog :www.ntschutta.com/jat/。


技术审校人员

KEITH HARVEY 是SCOPE iT (www.scopeit.com)的CTO和首席建构师,主要致力研究基于Web的项目预算应用,即快速、准确地开发IT项目的评估、预算和规划。SCOPE iT是Microsoft的一个合作伙伴,拥有ISV/软件解决方案资格。SCOPE iT应用建立在最新的Microsoft .NET技术、SQL Server和Ajax基础上。
Keith本身也是一位作者,写过许多关于Microsoft技术、数据库、Ajax、软件项目评估等方面的文章。Keith与他的妻子Tricia和女儿Hanna居住在加州西部。他的个人网站是www.keith-harvey.com。


后记

本书源代码
这本书中的所有例子都可以从Apress网站的源代码(Source Code)部分免费得到。把浏览器指向www.apress.com,点击Source Code链接,在列表中找到Foundations of Ajax。也可以从本书主页下载源代码(ZIP文件)。源代码按章组织。
本书的更新信息
尽管我们尽了最大努力,但是你可能还会在书中偶尔发现一两个错误,当然我们希望不会这样!如果正文或者源代码中还有错误,对此我们表示歉意。可以从Apress网站(www.apress.com)的本书主页上得到最新的勘误表,在此还会提供我们的联系信息,如果你发现了错误,可以通知我们。
联系我们
如果你对本书内容和源代码例子有疑问和建议,我们会非常重视。请把所有问题和建议直接发给foundationsofajax@gmail.com。我们会尽快回复;不过要记住,我们(像你一样!)不可能马上就有回应。
我们希望你认为这是一个有价值的资源,能像我们写这本书一样兴趣盎然地阅读这本书。

此致
Ryan Asleson和Nathaniel T. Schutta

posted on 2005-12-22 15:41 笨笨狗 阅读(1101) 评论(1)  编辑  收藏 所属分类: AJAX 新时代

评论

# re: 《AJAX基础》:新年最值得期待的一本书 2005-12-25 00:54 ahhoo

为何不脚下踏实地。
为什么要悬在web上。
其实什么都不是。  回复  更多评论   


只有注册用户登录后才能发表评论。


网站导航: