Ajax高级程序设计(第2版)

分类: 图书,计算机/网络,程序设计,其他,
作者: (美)扎卡斯,(美)麦克皮克,(美)福西特著,徐锋等译
出 版 社: 人民邮电出版社
出版时间: 2008-7-1字数: 890000版次: 1页数: 513印刷时间: 2008/07/01开本: 16开印次: 1纸张: 胶版纸I S B N : 9787115179791包装: 平装编辑推荐
《Java Script高级程序设计》姊妹篇;兼顾PHP、Java和.NET平台,涵盖最新Ajax技术。
“非常全面的实战图书。学习Ajax唯一必买的书。”
——资深Web开发人员,Frank Stepanski
“本书很好地兼顾了理论和实践,Web程序员均将从中获益匪浅。”
——Jason Salas,微软MVP
Ajax结合了THTML、CSS和JavaScript等技术。使Web开发人员能够创建更复杂、响应更及时的用户界面。为用户带来更加丰富的使用体验。
本书是世界级Web专家Nicholas C.Zakas继名作《JavaScript高级程序设计》之后,推出的又一本Amazon畅销书。第2版仍然以深入浅出的方式讲解了Ajaxe,备的编程知识,包括工作原理、模式和数据格式,为读者打下扎实的基础。同时更涵盖了众多重要的新内容:
热门的Ajax/JavaScript库:YUI、Prototype和jQuery
Comet和REST技术
Mashup和Web部件(widget)的开发
使用FireBug和Microsoft Fiddler调试程序
内容简介
本书是Ajax 领域的名著,详细讲解了帧、JavaScript、cookie、XML 和XHR 如何与Ajax 相关,以及具体的Ajax 技术实现;介绍了各种请求类型,给出了具有一定深度的有关如何以及何时在Web 站点或Web 应用程序中使用Ajax 的示例,以及各种数据传输格式及其优缺点;介绍了较为复杂的请求管理框架和Ajax 调试技术;讲述了两个完整的AjaxWeb 应用程序的创建过程。本书适用于各层Web 开发人员。
作者简介
Nicholas C.Zakas,世界级JavaScript程序员,目前在雅虎担任前端工程师。除本书外,他还是热门畅销书《JavaScript高级程序设计》(人民邮电出版社)一书的作者。
目录
第1章什么是Ajax
1.1Ajax的诞生
1.2Web的演化过程
1.2.1JavaScript
1.2.2帧
1.2.3隐藏帧技术
1.2.4动态HTML和DOM
1.2.5iframe
1.2.6XMLHttp
1.3真正的Ajax
1.4Ajax原则
1.5Ajax背后的技术
1.6谁在使用Ajax
1.6.1Google Suggest
1.6.2Gmail
1.6.3Google Maps
1.6.4A9
1.6.5Yahoo!News
1.6.6Bitflux Blog
1.7困惑与争议
1.8Ajax和Web 2.0
1.9小结
第2章Ajax基础
2.1HTTP基础
2.1.1HTTP请求
2.1.2HTTP响应
2.2Ajax通信技术
2.2.1隐藏帧技术
2.2.2XMLHttpRequest
2.2.3基于图像的Ajax
2.2.4动态脚本载入
2.3缓存控制
2.4小结
第3章Ajax模式
3.1通信控制模式
3.1.1预先获取
3.1.2页面预载入示例
3.1.3提交节流
3.1.4表单增量验证示例
3.1.5字段增量验证示例
3.1.6定期刷新
3.1.7新评论提示示例
3.1.8多阶段下载
3.1.9附加信息链接示例
3.2失效处理模式
3.2.1取消待处理的请求
3.2.2重试
3.3小结
第4章Ajax程序库
4.1Yahoo!连接管理器
4.1.1安装
4.1.2基本请求
4.1.3回调对象
4.1.4请求的监控和管理
4.1.5表单交互
4.1.6文件上传
4.1.7GET示例
4.1.8POST示例
4.1.9其他特性
4.1.10局限性
4.2Prototype
4.2.1Ajax.Request对象
4.2.2Options对象
4.2.3GET示例
4.2.4POST示例
4.2.5Ajax.Updater对象
4.2.6Ajax.Responders对象
4.2.7优点与缺点
4.3jQuery
4.3.1简单的jQuery表达式
4.3.2执行GET请求
4.3.3GET示例
4.3.4$.post()方法
4.3.5POST示例
4.3.6load()方法
4.3.7$.ajax()方法
4.3.8ajaxStart()和ajaxStop()方法
4.3.9局限性
4.4小结
第5章请求管理
5.1优先级队列
5.2RequestManager对象
5.2.1请求描述对象
5.2.2对请求进行排队
5.2.3发送请求
5.2.4取消请求
5.2.5基于等待时间的优先级提升
5.2.6处理Ajax模式
5.3使用RequestManager
5.4小结
第6章XML、XPath和XSLT
6.1浏览器对XML的支持
6.1.1IE中的XML DOM
6.1.2其他浏览器中的XML
6.1.3跨浏览器兼容的XML
6.1.4一个基本的XML示例
6.2浏览器对XPath的支持
6.2.1XPath概述
6.2.2IE中的XPath支持
6.2.3使用命名空间
6.2.4其他浏览器中的XPath支持
6.2.5使用命名空间解析器
6.2.6跨浏览器兼容的XPath
6.3浏览器对XSLT的支持
6.3.1XSLT概述
6.3.2IE中的XSLT
6.3.3其他浏览器中的XSLT
6.3.4跨浏览器兼容的XSLT
6.3.5回顾“最佳选择”功能
6.4小结
第7章基于RSS/Atom的聚合
7.1RSS
7.1.1RSS 0.91
7.1.2RSS 1.0
7.1.3RSS 2.0
7.2Atom
7.3XParser
7.3.1xparser命名空间
7.3.2获取数据
7.3.3抽象类
7.4创建一个新闻接收器
7.4.1服务器端组件
7.4.2客户端组件
7.4.3设置新闻的样式
7.4.4使用新闻接收器部件
7.5基于RSS的Web搜索
7.5.1服务器端组件
7.5.2客户端组件
7.5.3定制Web搜索部件
7.5.4使用Web搜索部件
7.6小结
第8章JSON
8.1什么是JSON
8.1.1数组字面量
8.1.2对象字面量
8.1.3混合字面量
8.1.4JSON语法
8.1.5JSON编码和解码
8.2JSON与XML
8.3服务端JSON工具
8.3.1JSON-PHP
8.3.2其他工具
8.4创建自动建议文本框
8.4.1功能概述
8.4.2HTML部分
8.4.3数据库表
8.4.4架构
8.4.5类
8.4.6自动建议控件
8.4.7建议提供程序
8.4.8服务器端组件
8.4.9客户端组件
8.5小结
第9章Comet
9.1HTTP流
9.1.1请求延时
9.1.2文件修改示例
9.1.3使用iframe
9.1.4浏览器特定的方法
9.1.5服务器端发送的DOM事件
9.2连接管理
9.3服务器端支持
9.4小结
第10章地图和mashup
10.1mashup的出现
10.2地理编码
10.2.1地理编码网站
10.2.2地理编码服务
10.3Google Maps API
10.3.1它是如何工作的
10.3.2开始动手
10.3.3Google Maps基础
10.3.4控件
10.3.5移动地图
10.3.6信息窗口
10.3.7事件
10.3.8覆盖图
10.3.9其他
10.4Yahoo! Maps API
10.4.1开始动手
10.4.2Yahoo! Maps基础
10.4.3控件
10.4.4移动地图
10.4.5智能窗口
10.4.6事件
10.4.7覆盖图
10.4.8地址查找
10.4.9其他
10.5其他地图服务API
10.6小结
第11章Ajax调试工具
11.1难点
11.2FireBug
11.2.1安装与配置
11.2.2操作界面
11.2.3XHR日志
11.2.4基于FireBug的Ajax调试
11.2.5FireBug的局限性
11.3Microsoft Fiddler
11.3.1安装与配置
11.3.2操作界面
11.3.3HTTP断点
11.3.4基于Fiddler的Ajax调试
11.4小结
第12章网站的用户界面组件
12.1创建天气用户界面组件
12.1.1Weather.com SDK
12.1.2服务端组件
12.1.3客户端组件
12.1.4从服务器获取数据
12.1.5定制天气用户界面组件
12.1.6将天气用户界面组件配置为应用程序
12.1.7将天气用户界面组件添加到Web页面中
12.2监测股票
12.2.1获取雅虎财经信息
12.2.2股票行情代理
12.2.3客户端组件:AjaxStockWatcher类
12.2.4定制股票行情
12.2.5使用股票监测器用户界面组件
12.3创建网站搜索用户界面组件
12.3.1服务器端组件
12.3.2客户端组件
12.3.3定制网站搜索用户界面组件
12.3.4将网站搜索用户界面组件添加到页面中
12.4小结
第13章Ajax框架
13.1JPSpan
13.1.1使用JPSpan
13.1.2JPSpan应用示例
13.1.3JPSpan小结
13.2DWR
13.2.1使用DWR
13.2.2DWR示例
13.2.3dwr.xml中的更多配置项
13.2.4DWR小结
13.3Ajax.NET专业版
13.3.1使用Ajax.NET专业版
13.3.2类型转换
13.3.3会话访问
13.3.4Ajax.NET专业版示例
13.3.5Ajax.NET专业版小结
13.4小结
第14章ASP.NET AJAX扩展(Atlas)
14.1系统需求与设置
14.2AJAX客户端程序库
14.2.1在ASP.NET中访问客户端工具
14.2.2在ASP.NET外使用客户端工具
14.2.3使用类
14.2.4编写使用ASP.NET AJAX程序库的代码
14.2.5使用控件
14.2.6发起HTTP请求
14.3更新面板控件
14.3.1在页面中添加更新面板
14.3.2为更新面板添加内容
14.3.3触发更新
14.3.4完成所有任务
14.4重新开发网站搜索用户界面组件
14.4.1用户界面
14.4.2开始动手
14.4.3定义表单
14.4.4执行搜索
14.4.5清除搜索结果
14.4.6处理错误
14.4.7绑定事件
14.5小结
第15章案例学习:FooReader.NET
15.1客户端组件
15.1.1用户界面
15.1.2设置用户界面的样式
15.1.3驱动UI
15.2服务器端应用程序
15.2.1可选的范型
15.2.2实现
15.3安装与测试
15.4小结
第16章案例学习:AjaxMail
16.1需求
16.2架构
16.2.1所使用的资源
16.2.2数据库表
16.2.3配置文件
16.2.4AjaxMailbox类
16.2.5执行动作
16.3用户界面
16.3.1文件夹视图
16.3.2阅读视图
16.3.3写视图
16.3.4布局
16.4将所有的整合在一起
16.4.1辅助函数
16.4.2mailbox对象
16.4.3回调函数
16.4.4事件处理器
16.5最后一步
16.6小结
书摘插图
第1章什么是Ajax
在2001年-2005年间,万维网(WWW)涌现出了大量新技术和新方法论,它们赋予了这种曾经静态的媒体以新的生命。在线产品手册和产品目录已不再是主流,而Web应用程序开始成为在线服务的主要形式。与传统网站不同,Web应用程序是为用户提供即时服务的。无论是为了业务流程管理还是个人兴趣,随着用户对更加丰富的功能的期望,开发人员都将转而创建新的交互模、式。
这些不太知名、很少使用的技术在Web测览器中已经存在一段时间了,它们使Web迈出了一大步,彻底推翻了传统的使用模式,当访问新数据或新的应用程序业务逻辑时不再需要重新载入整个页面。各个公司都开始尝试在网页中实现部分内容的动态载入,只向客户端传送一小部分数据,以得到更快速、更好的用户体验。
处于这一运动热潮最前沿的当数Google公司。当搜索引擎被广泛接受之后,Google的工程师们就开始在网站中名为Google Labs的栏目上展示新的尝试。在Google Labs中的许多项目,诸如GoogleSuggest、Google Maps,都只有单个网页,虽然从不卸载页面,但数据不断更新。这些革新着眼于将桌面软件用户界面的各种特色(affordance)迁移到浏览器屏幕范围之中,它们受到了广泛赞誉,引领了Web开发新时代的到来。
无数开源软件和商业化产品都开始考虑利用这种新Web应用程序模型进行开发。这些项目使用JavaScript远程调用、Web远程过程调用、动态更新等各种不同的术语来阐述该技术。但是很快,一个新的术语应运而生了。
1.1 Ajax的诞生
2005年2月,Adaptive Path公司的Jesse James Garrett在网上发表了一篇名为《Ajax:一种Web应用程序开发的新方法》的文章(现在还可以在www.adaptivepath.com/publications/essays/archives/000385。php看到)。在这篇文章中,Garrett阐述了他为什么认为Web应用程序正在填平与传统桌面应用程序之间的鸿沟。他引用了一些新的技术,并以几个Google的项目作为例子,说明了如何将传统的、基于桌面应用程序的用户交互模型应用到Web上。然后他说出了两旬引起广泛兴趣、热情和争论的话:
GoogleSuggest和GoogleMaps就是这种新型web应用程序的两个例子,在AdaptivePath公司里,我们将这种理念称为Ajax。这是Asynchronous(异步)JavaScript+XML的简写,它预示着web可能将发生一次根本性的变革。
从此之后,关于Ajax的文章、示例代码以及争议有如潮水一般充斥于整个因特网。开发人员在Blog上的谈论,技术杂志的关注,而许多公司则将这些应用在产品中。但要理解到底什么是Ajax,还必须先了解促使其产生的一些Web技术的演化过程。
……
