《Ajax企业级开发》此书解释了AJAX 为什么在大规模的开发中能有如此广阔的应用前景,接着系统地介绍了当前重要的AJAX 技术和组件。并在此基础上,给出了已经过证实的AJAX 架构模式,以及来源于实际的。NET 和Java AJAX 应用程序的案例研究。
书名:
Ajax企业级开发
又名:
Enterprise Ajax
作者:
Dave Johnson, Alexei White, Andre Charland
原版名称:
Enterprise Ajax
译者:
张祖良,荣浩,高冰
ISBN:
978-7-115-18606-5/TP
类别:
Web编程与设计
页数:
300
出版社:
人民邮电出版社
出版时间:
2008-09-05
装帧:
精装
开本:
1/16
原出版社:
Prentice Hall PTR
目录
摘录目录第1章AJAX和RIA第2章AJAX构建块第3章Web浏览器中的AJAX第4章AJAX组件第5章从设计到部署第6章AJAX架构第7章Web Service和安全性第8章AJAX可用性第9章用户界面模式第10章风险和最佳实践第11章案例研究前 言本书内容第1章涵盖了AJAX 应用的基本要素第2章研究组成AJAX 的各种技术第3章是基于第2章内容的扩展第4章准备介绍如何构建AJAX 用户界面组件第5章从应用设计到测试,再到部署第7章AJAX使用Web 服务来面向服务的架构第8章讨论了可用性方面的一些问题第9章探索一些强大的AJAX 用户界面模式第10章企业级AJAX 应用时的风险来源
摘录本书首先解释了AJAX 为什么在大规模的开发中能有如此广阔的应用前景,接着系统地介绍了当前重要的AJAX 技术和组件。你将看到把数据表、Web 窗体、图表、搜索和过滤连接在一起用于构建AJAX 应用程序的框架开发的整个过程;在此基础上,本书给出了已经过证实的AJAX 架构模式,以及来源于实际的.NET 和Java AJAX 应用程序的案例研究。
本书适用于任何平台上的Web 开发和设计人员。目录第1章AJAX和RIA1.1变化中的Web 2
1.1.1传统Web应用之痛 3
1.1.2AJAX止痛药 4
1.2企业中的AJAX 6
1.3采用AJAX的驱动因素 7
1.3.1可用性 7
1.3.2网络利用率 9
1.3.3以数据为中心 10
1.3.4渐增的技巧、工具和技术升级 10
1.3.5服务器中立 10
1.4关于应用 10
1.4.1AJAX技术 11
1.4.2编程模式 12
1.5AJAX的替换技术 12
1.5.1XUL 12
1.5.2XAML 13
1.5.3Java Applet和Web Start 13
1.5.4Adobe Flash、Flex和Apollo 13
1.5.5OpenLaszlo 14
1.6小结 14
1.7资源 15第2章AJAX构建块2.1JavaScript 16
2.1.1JavaScript类型 17
2.1.2闭包 18
2.1.3面向对象的JavaScript 19
2.1.4prototype属性 21
2.1.5面向对象编程和继承 22
2.1.6易变性 24
2.1.7线程 25
2.1.8错误处理 26
2.1.9命名空间 26
2.2DOM 27
2.2.1基本原理 28
2.2.2操作DOM 30
2.3CSS 31
2.3.1继承和层叠 32
2.3.2内联样式 33
2.3.3样式表 33
2.3.4动态样式 35
2.4事件 38
2.4.1事件流 39
2.4.2事件绑定 40
2.4.3跨浏览器事件 42
2.4.4事件对象 44
2.5客户端/服务器通信 44
2.5.1XMLHttpRequest基础知识 45
2.5.2处理数据 51
2.6小结 53
2.7资源 53第3章Web浏览器中的AJAX3.1基于组件的AJAX 55
3.1.1渐增的AJAX 56
3.1.2对服务器的影响 56
3.2HTML标准 57
3.2.1文档类型定义 57
3.2.2盒子模型 59
3.3启动加载AJAX组件 60
3.3.1onload事件 60
3.3.2浏览器编码技巧 63
3.4模型—视图—控制器 66
3.4.1视图 66
3.4.2控制器 68
3.4.3模型 69
3.5AJAX MVC 70
3.5.1AJAX模型 70
3.5.2AJAX视图 77
3.5.3AJAX控制器 79
3.5.4面向方面的JavaScript 86
3.6小结 88
3.7资源 88第4章AJAX组件4.1命令式组件 89
4.2声明式组件 92
4.2.1服务器端声明式编程 92
4.2.2声明式Google地图 93
4.2.3替代方法 97
4.3自定义声明式组件 98
4.3.1行为式组件 100
4.3.2声明式组件 103
4.3.3关于声明 107
4.4构建组件 110
4.4.1基本功能 110
4.4.2连接到服务器 114
4.4.3最终版本 117
4.5小结 119
4.6资源 119第5章从设计到部署5.1设计 120
5.1.1AJAX建模 121
5.1.2应用模型—视图—控制器模式 121
5.1.3预先考虑性能问题 122
5.2原型设计 123
5.2.1线框绘制 124
5.2.2验证设计决议 128
5.3测试 136
5.3.1测试驱动开发 136
5.3.2调试 147
5.4部署 151
5.4.1JavaScript压缩 151
5.4.2图片合并 155
5.4.3保护知识产权 156
5.4.4文档 157
5.5小结 158
5.6资源 159第6章AJAX架构6.1多层架构:从单层到多层 160
6.2异步消息 161
6.3轮询 162
6.4服务器推送 162
6.5跟踪请求 163
6.6缓存:处理数据 164
6.7基本缓存 165
6.8在组件中缓存 166
6.9在浏览器中缓存 169
6.10在服务器中缓存 171
6.11在数据库中缓存 173
6.11.1MySQL 174
6.11.2MS SQL Server 174
6.11.3Oracle 174
6.12更新服务器模型:并发 174
6.12.1悲观锁定 175
6.12.2只读锁定 175
6.12.3乐观锁定 175
6.12.4冲突鉴定 175
6.12.5冲突解决 177
6.12.6自动的冲突解决 178
6.13流量控制 178
6.13.1客户端 178
6.13.2服务器 179
6.14可伸缩性 179
6.14.1负载平衡和群集 180
6.14.2AJAX可伸缩性问题 181
6.15离线AJAX 181
6.16FireFox离线存储 183
6.17IE userData离线存储 185
6.18使用Flash客户端存储 186
6.19离线AJAX和并发 188
6.20小结 189
6.21资源 189
6.21.1REST和Web服务 189
6.21.2缓存 189
6.21.3数据库性能 190
6.21.4离线AJAX 190第7章Web Service和安全性7.1Web Service 191
7.2Web Service协议 192
7.2.1表象状态传输 192
7.2.2XML远程过程调用 192
7.2.3Web Service 193
7.2.4选择合适的工具 194
7.3客户端的SOAP 196
7.3.1IBM Web Service JavaScript库 196
7.3.2Firefox 198
7.3.3IE 199
7.4跨域Web Service 200
7.4.1服务器代理 200
7.4.2URL片段标识符 202
7.4.3Flash跨域XML 204
7.4.4脚本注入 204
7.5安全性 205
7.6AJAX的安全性考虑 206
7.7跨域漏洞 206
7.7.1跨站脚本 207
7.7.2跨站请求伪造 210
7.7.3JavaScript劫持 211
7.8SQL注入 213
7.8.1预处理语句 214
7.8.2存储过程 215
7.8.3XPath注入 216
7.9数据加密和隐私 216
7.10防火墙 217
7.11小结 218
7.12资源 218第8章AJAX可用性8.1 常见问题 219
8.1.1 后退按钮和书签 220
8.1.2 页面大小 228
8.1.3 自动提交 230
8.2 可访问性 231
8.2.1 识别用户的可访问性需求 232
8.2.2 JavaScript和Web可访问性 232
8.2.3 屏幕阅读器和可访问性 232
8.2.4 不该为屏幕阅读器提供的解决方案 233
8.2.5 兼容JAWS的AJAX交互 233
8.2.6 键盘可访问性 235
8.3 可用性测试 237
8.4 迅速而又随性的测试 237
8.4.1 征募参与者 237
8.4.2 设计并运行测试 238
8.5 软件辅助测试 238
8.5.1 用于测试可用性的工具 238
8.5.2 对软件辅助测试的一般忠告 239
8.6 小结 239
8.7 资源 239
8.7.1 后退按钮 239
8.7.2 可用性测试 240第9章用户界面模式9.1 显示模式 241
9.2 交互模式 248
9.3 小结 256
9.4 资源 256
9.4.1 拖曳资源 256
9.4.2 进度栏资源 257
9.4.3 活动指示器资源 257
9.4.4 颜色淡出资源 257
9.4.5 即时编辑资源 257
9.4.6 向下钻取资源 257
9.4.7 即时搜索资源 257
9.4.8 即时表单资源 257第10章风险和最佳实践10.1风险来源 258
10.1.1技术风险 259
10.1.2文化/政策风险 259
10.1.3市场风险 259
10.2技术风险 259
10.2.1范围 259
10.2.2浏览器能力 260
10.2.3可维护性 261
10.2.4向前兼容 261
10.2.5第三方工具支持和代码过时 262
10.3文化和政策风险 262
10.3.1终端用户的期待 263
10.3.2可培训性 263
10.3.3合法性 264
10.4市场风险 264
10.4.1搜索引擎的可访问性 264
10.4.2范围 266
10.4.3货币化 266
10.5风险评估和最佳实践 267
10.5.1采用特定的AJAX框架或者组件 267
10.5.2渐进增强和不唐突的JavaScript 267
10.5.3Google网站地图 269
10.5.4可视化提示 270
10.5.5避免镀金式设计 270
10.5.6制定维护计划 271
10.5.7采用一种收益模型 271
10.5.8把培训作为应用的一部分 272
10.6小结 272
10.7资源 273
10.7.1搜索引擎优化 273
10.7.2统计 273
10.7.3网站地图 273
10.7.4屏幕截取工具 273第11章案例研究11.1基于Web 2.0重新武装美国国防部 274
11.1.1背景 274
11.1.2挑战 275
11.1.3解决方案 275
11.1.4采用技术 275
11.1.5成果 276
11.2Agrium公司将AJAX技术整合到实际运作中 276
11.2.1背景 276
11.2.2挑战 277
11.2.3解决方案 277
11.2.4采用的技术 279
11.2.5成果 279
11.3AJAX助力国际运输与物流公司 279
11.3.1背景 279
11.3.2挑战 280
11.3.3解决方案 280
11.3.4采用的技术 282
11.3.5成果 282
11.4小结 283
11.5资源 284
附录AOPENAJAX HUB 285
前 言也许你和我们所遇见的许多有才华的开发者一样,对AJAX 技术以及如何使用这项技术来改善Web 应用很感兴趣,你可能已经初步上网做了一番研究,访问过Ajaxian 网站或者阅读了关于AJAX开发的入门图书。当然,你也可能属于人数更多的另一类有才华的开发者群体,想要走进AJAX世界,开始实际使用这项技术。无论是哪种情况,我们都做了考虑。令人高兴的是,开发者社区终于开始真正理解AJAX了。其实并没有那么难。
我们决定编写本书是因为我们对于现状很失望:关于AJAX 开发更为高级的主题的信息太少了。主要原因可能是讲述这方面主题的图书仍然还在“编写”中,而且,尽管AJAX 进入主流应用已有几年时间,但它才刚刚开始进入企业级软件开发的领地。我们希望本书能成为企业级开发者感兴趣的信息资源。为此,我们尝试把目前的开发方法与JavaScript 以及其他组成AJAX 的技术结合起来,并以所有企业级开发者都熟悉和易于理解的方式讲述。
为什么需要本书
本书大部分内容源自多年来我们在Nitobi 公司构建AJAX 应用和用户界面组件的第一手经验。这代表了我们在开发过程中的所知所得,对于那些希望把AJAX 引入到开发项目中的开发者来说,这应该是很有用的资源。如果你想更加精通JavaScript 开发,想解决AJAX 怪癖①和性能问题,想从头设计可用性好的Web 软件,那么本书将成为绝佳的资源。Ajax企业级开发
我们有足够的时间来讨论如何以一种Java或者C#开发者熟悉的方式来编写JavaScript 代码,并能使你快速上手。在这个过程中,我们会通过一些耳熟能详的软件设计模式来描述AJAX 开发,并包含了AJAX 开发过程中最热门的话题,例如安全性和离线存储。同时,不仅仅通过代码的优化,而且还通过利用因特网基础设施支柱(例如缓存),给出了构建高性能AJAX应用的真实解决方案。
本书采用了与其他AJAX 图书略微不同的方法,讨论范围较为全面,其中包括关于编程方面的大量建议,以及应用可用性、可访问性和国际化等问题的丰富讨论。本书还包含了一个框架,用于AJAX 开发项目中的风险评估。本书还特别介绍了在真实企业应用中使用AJAX 的一些开发者,看看从他们的经验中能够学到些什么。
本书读者
本书主要面向中高级服务器端(Java、面向对象PHP )开发者。书中的很多概念来自Erich Gamma 、Richard Helm、Ralph Johnson 和John Vlissides 所著《设计模式——可复用面向对象软件基础》一书提出的那些经过时间考验的软件工程模式。因为整本书都应用了这些思想,所以读者如果对软件设计模式有一个基本的理解,或者至少对学习这方面更多的知识有兴趣,会很有帮助。我们希望以一种常见的方式,即使用模式来描述AJAX,从而帮助更多有经验的开发者更容易地理解其中的概念和思想。
也许比理解模式更重要的是,你至少应该掌握JavaScript 、HTML 和CSS 的基础知识,甚至是理解XML 、XSLT或者JSON,这些知识也很有用,但不是必需的。除此之外,我们希望你拥有以面向对象的语言,如Java、C#或PHP等进行服务器端编程的经验。
阅读完本书之后,开发者应该熟悉组成AJAX 的系列技术,以及面向对象JavaScript 的开发。同时,你将很好地了解有助于开发应用的工具,以及诸如安全、可用性和可访问性等各种AJAX 问题。
本书内容第1章涵盖了AJAX 应用的基本要素并阐明了这些要素是如何组合在一起的。同时讨论了Web 应用的演进,以及AJAX成为基于Web 应用首选解决方案的主要原因。第2章研究组成AJAX 的各种技术本章包含了关于使用正确的方法来编写JavaScript 的重要信息,特别关注面向对象 JavaScript 的开发、DOM、CSS 、事件和XMLHttprequest 对象,同时还包括了从客户端到服务器端数据传输相关的问题。第3章是基于第2章内容的扩展为理解主流浏览器的差异奠定了基础。具备了这些知识后,我们介绍了如何使用MVC (模型—视图—控制器,Model-View-Controller )模式来构建AJAX 应用。特别是,你将明白如何在JavaScript 中编写客户端模型,如何从数据生成 HTML 视图,如何使用依赖发布—订阅(publish-subscribe )事件系统的基于JavaScipt的控制器来连接视图和模型。
第4章准备介绍如何构建AJAX 用户界面组件特别地,我们分析了命令式和声明式方法的不同点,给出了一个构建基于AJAX的数据网格组件完整示例,同时还介绍了声明式方法的一些限制。然后,本书给出了AJAX 开发一些总体的目标和问题。第5章从应用设计到测试,再到部署具体分析贯穿软件开发生命周期中AJAX特有的问题。阅读完本章之后,你将很好地把握各种AJAX性能问题以及对任意的AJAX开发项目自始至终都有用的许多工具。
Ajax企业级开发(4张)
第6章为AJAX开发过程中各种架构问题其中包括异步消息通信模式的研究,以及与服务器通信的方法的研究,例如服务器推送(push)、缓存、负载和离线AJAX 。虽然其中很多问题在任何基于Web 的应用上都很常见,但这里我们将从一个独特的AJAX视角来讨论这些问题。
第7章AJAX使用Web 服务来面向服务的架构以及在构建AJAX Web 应用时可能出现的各种安全问题。第8章讨论了可用性方面的一些问题尤其是如何为普通的用户把这些讨论应用到AJAX应用的构建中。本章介绍了人们所关注的常见问题的完整解决方案,例如后退按钮问题、处理可访问性以及国际化的方法。
第9章探索一些强大的AJAX 用户界面模式包括即时编辑(in-place editing)、主从复合结构(master-detail )、实时表单以及拖拽等。构建大多数的AJAX 应用时,有许多核心的用户界面设计模式是每个开发者都应该了解的。第10章企业级AJAX 应用时的风险来源这个主题也许是AJAX书籍中探索最少的主题,但是当考虑构建新的应用时,它与技术本身同样重要。
第11章作为总结,分析了在要求最为严格的企业环境中的一些实际AJAX 实现。我们与这些应用的开发者对话,并且倾听他们做对的和做错的事,以及下一次开发过程中将采取何种不同的实现方式。
总之,我们希望在AJAX 开发方面给你一个新的认识,最重要的是,你可以把一些新的技巧引入到你的项目开发中。