出版时间:2008-11 出版社:人民邮电出版社 作者:(英)格雷恩 等 著 贺师 页数:382
Tag标签:无
前言
Web始终都是催生创新的温床,在它不长的历史里,以某项创造为基础进行重造和重用,以致在某些方面远远超出原始发明者意图的例子比比皆是。例如,CGI取代了一种基于网络的文档检索协议,同时又提供了从后台数据库中取得数据并(根据实时请求)动态生成文档的能力;HTTP首部被用来在无状态协议之上提供持续的用户会话,这使预订系统和电子商务等有状态应用成为可能;在核心协议上创建的加密层,给那些网上商店的顾客和业务应用的用户以信心。 这些突破性的技术永久地改变了人们使用Web的方式。时至今日,诸如服务器端页面、用户会话以及SSL等技术只是构建web应用的日常构件,并成为所有Web7F发人员工具箱里的必备,以至于我们认为这是理所当然的。然而,Web创新的步伐仍然没有停止,几乎每周都会有新的’Web框架出现。 Ajax是近年来web开发领域最大的突破性技术之一。先前的所有创新对Web用户界面(点击、发送请求、响应、重绘页面)的基本模式没有多大影响,直到XMI_,HttpRequest(XHR)对象1999年悄然出现在IE 5中时,这一状况才结束。该对象的使用最初是为了增强Outlook Web Access客户端程序,并未引起太大的关注。 2005年,当Google举起AiaX的旗帜开发邮件(Gmail)、地图和Suggest等应用时,人们才开始猛然醒悟,关注起A1ax来。来自Adaptive Path公司的Jesse James Garrett提出了“Aiax”这一术语,树起一面大旗,人们云集旗下讨论Ajax究竟是什么,可以用它做什么。 Aiax好像只是在等待一个名字,一旦有了,一系列令人兴奋的活动接踵而至,而人们也开始研究Ajax的技术本质。Ajax引入了一种创建Web应用的全新的方式。尽管这也导致有许多新的问题亟待解决,但随着web开发社区不断突破新的极限,过去两年爆发了新一轮创新热潮。 沿着这种发展路线,Aiax的基础(例如XML HttpRequest对象)将重复服务器端页面、用户会话以及SSL的道路。处于集体无意识的web开发社区犹如神助,一下子明白了Ajax技术的根本,并转向如何解决使用中产生的更广泛的问题。 为解决这些问题,我们决定撰写本书。我们希望本书能帮助熟练的和不那么熟练的WebTF发者完全掌握Ajax技术并成功创建其自己的Ajax应用。它可以看作是第二代Ajax图书:第一代Ajax图书介绍Ajax是什么,而第二代Ajax图书介绍可以用它做什么以及如何做。 本书从Manning,出版社联系Steve:Benfield并希望他成为第二代Ajax图书的主编开始启动,可以看作是Dave Crane所著畅销书《Ajax实战》的后续之作。后来,Steve因故不再担任主编,于是Jord Sonneveld、Bear Bibeault和Dave Crane携手为你奉献了本书。
内容概要
《Ajax实战实例详解》堪称Ajax 领域内的典范之作,深受读者好评。它以Ajax 的简要介绍开篇,然后以知识点为脉络, 讲述了几十个易于使用的、以解决方案为重点的实例,并针对每一个实例给出了详细的范例代码,可操作性极强。通过《Ajax实战实例详解》,读者可以学会如何实现富客户端用户界面,包括拖拽、实践性策略、有效导航、事件处理、表单项目验证、状态管理、Ajax 库的选择、访问第三方的开放网络服务接口,等等。最后,《Ajax实战实例详解》以一个妙趣横生且极其实用的mashup 实例结尾。 《Ajax实战实例详解》适合所有的现代Web 开发人员。
作者简介
Dave Carane是著名的Ajax权威,领衔撰写了《Ajax实战》三部曲。
书籍目录
第一部分 Ajax基础第1章 拥抱Ajax1.1 Ajax,一种颠覆性的技术1.1.1 重新定义用户的工作流程1.1.2 重新定义Web应用的架构1.2 Ajax快速入门1.2.1 XMLHttpRequest简介1.2.2 实例化XMLHttpRequest1.2.3 发送请求1.2.4 处理响应1.2.5 XMLHttpRequest的其他方法和属性1.3 使用框架简化Ajax1.3.1 用Prototype库中的Ajax.Request对象创建请求1.3.2 简化Ajax响应1.4 总结第2章 Ajax的通信方式2.1 在服务器端生成JavaScript2.1.1 执行由服务器生成的代码2.1.2 遵循代码生成的实践准则2.2 JSON简介2.2.1 在服务器上生成JSON2.2.2 使用JSON往返传输数据2.3 在Ajax中使用XML和XSLT2.3.1 解析服务器生成的XML2.3.2 用XSLT和XPath来更好地处理XML2.4 在Web服务中使用Ajax2.5 总结第3章 面向对象的JavaScript与Prototype库3.1 面向对象的JavaScript3.1.1 对象的基本原理3.1.2 函数是一等公民3.1.3 对象构造器和方法3.1.4 编写JavaScript类:一个按钮3.2 Prototype程序库3.2.1 常用的函数和扩展3.2.2 对数组的扩展3.2.3 Hash类3.2.4 给函数绑定上下文对象3.2.5 面向对象的Prototype3.2.6 用Prototype重写Button类3.3 总结第4章 Ajax开源工具集4.1 Dojo工具包4.1.1 用Dojo进行异步请求4.1.2 用Dojo自动对表单进行编组4.2 Prototype4.2.1 Prototype中的异步请求4.2.2 用Prototype进行自动更新4.2.3 用Prototype进行定期更新4.3 jQuery4.3.1 jQuery基础4.3.2 用jQuery进行异步加载4.3.3 用jQuery获取动态数据4.4 DWR4.5 总结第二部分 Ajax最佳实践第5章 事件处理5.1 事件处理模型5.1.1 基本的事件处理注册5.1.2 高级事件处理5.2 Event对象与事件传播机制5.2.1 Event对象5.2.2 事件的传播5.3 使用Prototype进行事件处理5.4 事件类型5.4.1 鼠标事件5.4.2 键盘事件5.4.3 change事件5.4.4 页面事件5.5 事件处理实践5.5.1 在服务端验证文本字段5.5.2 无需页面重新加载的表单元素提交方式5.5.3 只提交发生改变的元素5.6 总结第6章 表单验证与提交6.1 客户端表单验证6.1.1 在客户端进行验证6.1.2 即时验证6.1.3 跨字段验证6.2 投递数据6.2.1 POST请求剖析6.2.2 将数据投递到服务器6.2.3 将表单数据投递到服务器6.2.4 检测表单数据变化6.3 总结第7章 内容导航7.1 网站导航原理7.1.1 大海捞“针”7.1.2 创造更好的“针”探7.1.3 导航和Ajax7.2 传统的Web导航7.2.1 一个简单的导航菜单7.2.2 DHTML菜单7.3 借鉴桌面应用的导航设施7.3.1 使用qooxdoo库实现Tab组件7.3.2 qooxdoo工具栏和窗口7.3.3 qooxdoo树组件7.4 桌面应用和Web应用的折中7.4.1 OpenRico库的Accordion控件7.4.2 创建HTML友好的树控件7.5 总结第8章 处理后退、刷新和撤销8.1 禁止用户访问浏览器的导航控件8.1.1 移除浏览器导航工具栏8.1.2 捕捉快捷键8.1.3 禁止右键弹出上下文菜单8.1.4 阻止用户导航历史记录或刷新页面8.2 与浏览器导航控件协作8.2.1 使用JavaScript内建的history对象8.2.2 使用Hash对象实现书签8.2.3 RSH框架介绍8.2.4 使用RSH框架维护客户端状态8.2.5 使用RSH在服务端维护应用程序状态8.3 处理撤销操作8.3.1 何时提供可撤销功能8.3.2 实现一个可撤销/恢复操作栈8.3.3 扩展撤销栈以支持更复杂的用户操作8.4 总结第9章 拖放9.1 支持拖放的JavaScript框架9.2 Ajax应用中的拖放9.2.1 支持拖放的Ajax购物车示例9.2.2 拖放列表中的数据操纵9.2.3 使用ICEfaces创建Ajax购物车9.3 总结第10章 对用户友好一点10.1 与延迟作斗争10.1.1 以反馈来应对等待10.1.2 显示进度10.1.3 Ajax请求超时10.1.4 处理多次点击10.2 预防和检测输入错误10.2.1 主动显示上下文帮助10.2.2 对表单输入项进行有效性验证10.3 维护焦点和分层顺序10.3.1 维护焦点顺序10.3.2 管理堆叠顺序10.4 总结第11章 状态管理和缓存11.1 客户端状态的维持11.2 服务器数据缓存11.2.1 Java类的数据的交换11.2.2 预取11.3 客户端状态的持久化11.3.1 以JSON形式存储和取回用户状态11.3.2 通过AMASS保存JSON字符串11.4 总结第12章 开放式WebAPI和Ajax12.1 Yahoo!开发者网络12.1.1 Yahoo!地图12.1.2 跨服务器代理12.1.3 Yahoo!MapsGeocoding12.1.4 Yahoo!交通12.2 Google搜索API12.3 Flickr图片分享12.3.1 Flickr用户内部标识12.3.2 Flickr图片和缩略图12.4 稍等!据说,还有很多……12.4.1 Amazon服务12.4.2 eBay服务12.4.3 MapQuest12.4.4 NOAA/国家气象服务12.4.5 更多Web服务接口12.5 总结第13章 使用Ajax进行混搭13.1 Trip-o-matic应用简介13.1.1 应用的目的13.1.2 应用概览和需求13.2 Trip-o-matic的数据文件13.2.1 我们应该采用什么格式13.2.2 旅行数据格式13.2.3 设置Flickr照片集13.3 TripomaticDigester类13.3.1 依赖性检查13.3.2 TripomaticDigester的构造器13.3.3 解读旅行数据13.3.4 加载经典信息13.3.5 收集元素的文本内容13.4 Tripomatic应用类13.4.1 Tripomatic类和构造器13.4.2 创建内容元素13.4.3 填充旅行数据13.4.4 显示地图13.4.5 加载缩略图13.4.6 显示照片13.5 Trip-o-matic应用页面13.5.1 Trip-o-matic的HTML文档13.5.2 样式之旅13.6 总结
章节摘录
第一部分 Ajax基础 本书将带领你进入Ajax网络应用的新世界。全书特别注重实例,提供了大量可重用的实用示例,所展示的技巧极富实践性,可直接运用于你自己的应用中。为了准备好这次令人兴奋的旅程,整个第一部分会作为其后第二部分各个章节的一个强化预备课程。 第1章论述了Ajax与那些以往惯用的技术的不同之处,并由此展望了全书内容。我们首先讨论了如何用Ajax支持浏览器,以及如何在JavaScript代码里处理异步响应。我们也会看一看Prototype,作为一个非常流行的JavaScript程序库,在整本书中你会一次又一次地看到它的身影。 第2章研究了Ajax请求所能产生的各种响应格式,包括:纯文本、HTML、JSON(JavaScript Object Notation,JavaScript对象记法)、XML,乃至SOAP文档。 第3章深入探讨了每个严肃的Ajax开发者都需要吃透的高级JavaScript技巧。我们研究了JavaScript的对象和函数,解释了如何使用它们来创建自己的JavaScript类:,从而利用面向对象技术对Ajax所需的不断增长的客户端代码规模进行控制。你会明白JavaScript的函数是一个比你想象的更为丰富多样的概念。 第4章纵览了各种提供A;ax编程支持的JavaScript库。我们更为深入地考察了元老级选手Prototype库,还考察了全能选手Doj0工具包,以及jQuery——这个Ajax竞技场上初来乍到却令人兴奋的选手。本章最后介绍了DWR,它借助Ajax提供了类似RPC(Remote Procedure Calling,远程过程调用)的能力,实质上就是将Ajax作为一种传输机制来加以利用。
媒体关注与评论
“通过本书中的示例,我掌握了大量关于Ajax的核心技巧和高级Javascript技术。绝对必读的Ajax著作!” --Javaranch.com “我太喜欢这本书了,具体、实用,可以立刻付诸实践我强烈推荐!” --Amazon.com
编辑推荐
《Ajax实战实例详解》是Aiax大师Dave Crane继巨著《Ajax实战》之后,与数位顶尖高手联袂推出的又一部Ajax力作。《Ajax实战实例详解》中直指Ajax/JavaScript应用程序开发中急需解决的各种具体问题,通过大量经典的可重用代码。 七位世界级Web专家巨献、引领你进入Ajax 2.0时代、大量Ajax/JavaScript核心技巧和最佳实践。 Ajax赋予了web程序员开创未来的潜力。但是,Ajax应用程序的复杂性和开发难度也大大增加——如此空前的挑战,我们应该如何应对?
图书封面
图书标签Tags
无
评论、评分、阅读与下载