Ajax入门经典
分類: 图书,计算机/网络,程序设计,其他,
作者: (美)乌尔曼,(美)戴科斯 著,徐璐 译
出 版 社: 清华大学出版社
出版时间: 2008-8-1字数: 712000版次: 1页数: 451印刷时间: 2008/08/01开本: 16开印次: 1纸张: 胶版纸I S B N : 9787302180036包装: 平装内容简介
作为一些新事物如wiki、博客以及第三方API的主要推动者之一,Ajax正在重新定义创建Web应用程序的方式。本书会让您熟悉Ajax背后的核心技术,并演示如何用Ajax技术开始建立Web站点。本书通过经过验证的例子,循序渐进地来介绍概念,使您可以很快开始应用这些知识。
您将会看到借助于Ajax技术建立的站点可以比以前有更多的交互式用户界面。也将会学习到客户端和服务器端开发技术功能上的差别以及Ajax是如何跨越这个分界的。您还会发现Ajax技术是如何用模式来概括的(模式是那些会反复用到的开发模型)。掌握了这些技术之后,在开发Web站点和应用程序时,会有如获新生的感觉。
本书主要内容
了解Ajax的优点和缺点,从而知道使用它的最佳方式
Ajax之下的基本JavaScript和DOM技术
使用XMLHttpRequest对象(Ajax技术的主要提供者)来调用ASP.NET、PHP和Java应用的方法
如何保存和发送大多数Ajax应用都会用到的XML数据
如何在Ajax应用程序中手动调试JavaScript以及如何编写错误处理代码
通过Web服务或API把应用程序结合起来以创建mashup的途径
本书读者对象
本书适用于那些希望用Ajax技术来开始建立站点的Web开发人员。他们应该熟悉(X)HTML、JavaScript和基本的CSS。对于服务器端的例子,读者还应该熟悉PHP或者ASP.NET之一,不过不需要对它们有深入了解。
本书主要讨论Aiax是什么、它对Web开发人员的意义以及Ajax应用程序背后的相关技术。书中给出了大量示例和细致的示例说明,并由浅入深地讲解概念,充分演示了如何刨建Ajax站点和应用程序。通过学习本书,您将理解Ajax应用程序如何实现客户端和服务器端开发技术的跨越,掌握一些通用的Ajax模式,并看到Ajax如何融合现有的技术,如XSLT、Web服务和DOM等。
作者简介
Chris UIIman有着多年的ASP/ASP.NET工作经验。具有计算机科学背景的他最初是UNIX/Linux方面的权威,在1997年ASP盛行时被Microsoft技术所吸引。Chris主编或参与创作了多达25本书籍,包括最畅销的Beginning ASP/ASP.NETI.X系列书籍。他也参与编写了有关PHP、JavaScript、Web服务等技术的书籍。2001年8月,Chris开始实践VB.NET/C#编程和ASP.NET开发,并于2003年创办了自己的CUASP咨询有限公司。此外,他还负责维护http:ffwwwcuasp.C0.C0.uk等网站。
Lucinda Dykes是资深Web开发员、教师兼技术作家。她最初工作于医学高科技领域,但最终改投更吸引她的Web。从1994年起,她开始编写程序和开发Web站点,同时在课堂和网上(eclasses.org)讲授与JavaScript相关的课程。Lucinda在公司Zero G Web工作多年,致力于用JavaScript进行客户端开发,还著有大量关于XML、×HTML和用Dreamweaver开发Web应用程序的书籍。
目录
第1章Ajax简介
1.1什么是Ajax
1.1.1Ajax的应用
1.1.2Ajax的全称
1.2Ajax应用程序模型
1.2.1使用Ajax的原因
1.2.2Ajax不适合的场合
1.2.3使用Ajax的条件
1.3创建自己的Ajax
1.4本章小结
1.5练习
第2章重温JavaScript
2.1核心JavaScript
2.1.1语法
2.1.2变量
2.1.3运算符
2.1.4语句
2.1.5函数
2.2面向对象的JavaScript
2.2.1内置对象
2.2.2浏览器对象
2.2.3用户自定义对象
2.3文档对象模型
2.3.1文档的家谱树结构
2.3.2文档的节点树结构
2.3.3用来访问对象的DOM方法
2.3.4创建节点
2.3.5另一种方案:innerHTML
2.4JavaScript和事件
2.4.1事件模型
2.4.2事件注册程序
2.4.3事件对象
2.5本章小结
2.6练习
第3章Ajax和服务器端技术
3.1Ajax和服务器端技术
3.1.1表单和HTML控件
3.1.2表单的提交模型
3.1.3Ajax/JavaScript提交模型
3.2服务器端的情况
3.2.1向服务器提交数据
3.2.2服务器接收请求
3.3编写HTTP响应
3.4服务器端技术
3.4.1ASP.NET
3.4.2使用AJAX和ASP.NET的示例
3.5PHP
3.6Java Servlet
3.7应当使用哪种技术
3.8本章小结
3.9练习
第4章Ajax技术
4.1XMLHttpRequest对象
4.2创建XMLHttpRequest对象
4.2.1同步用法
4.2.2异步用法
4.2.3readyState属性
4.2.4XMLHttpRequest的属性和方法
4.2.5常见错误
4.2.6更复杂的问题
4.3POST方法
4.4使用POST和GET方法的优缺点
4.5其他Ajax技术
4.5.1隐藏框架
4.5.2隐藏的内联框架
4.5.3动态脚本加载
4.5.4图像和Cookie
4.6本章小结
4.7练习
第5章XML的使用
5.1XML基础
5.1.1创建标记
5.1.2XML语法
5.1.3格式良好且有效的XML
5.2使用JavaScript提取XML数据
5.2.1使用节点
5.2.2根据名称访问XML元素
5.2.3访问属性值
5.3使用CSS显示XML数据
5.3.1使用CSS显示XML文档
5.3.2在Ajax中使用CSS
5.4本章小结
5.5练习
第6章调试与错误处理
6.1JavaScript错误处理
6.1.1处理异常
6.1.2onerror事件处理程序
6.1.3Mozilla JavaScript控制台
6.1.4Microsoft Script Debugger
6.1.5Firebug
6.2DOM检查器
6.2.1Firefox DOM检查器
6.2.2IE DOM Ispector
6.2.3Mouseover DOM Ispector(MODI)
6.3Ajax故障诊断
6.3.1使用Firebug控制台解决XMLHttpRequest问题
6.3.2Live HTTP Headers
6.3.3ieHTTPHeaders Explorer Bar
6.4本章小结
6.5练习
第7章Web服务、API和Mashup
7.1什么是Web服务
7.1.1公共Web服务
7.1.2消费第三方Web服务
7.2Web服务的结构
7.2.1REST方法
7.2.2SOAP方法
7.3将Web服务集成到Ajax
应用程序
7.3.1使用XMLHttpRequest消费服务
7.3.2同源策略
7.3.3创建应用程序代理
7.4使用脚本标记
7.5未来替代方案
7.6使用API
7.7Web服务和API之间的区别
7.8Google Maps API
7.8.1Google Maps API密钥
7.8.2Map对象
7.8.3Geocode
7.8.4XMLHttpRequest工厂方法
7.9Mashup
7.10Ajax和Mashup的关系
7.11使用Flickr API
7.11.1标记云(加权清单)
7.11.2使用Flickr API密钥
7.11.3创建示例应用程序
7.11.4Flickr中的地理标记照片
7.11.5显示来自Flickr的照片
7.12本章小结
7.13练习
第8章XSLT和XPath
8.1XSLT及其用途
8.2XSLT元素
8.2.1xsl:stylesheet
8.2.2xsl:output
8.2.3xsl:includes
8.2.4xsl:template、xsl:apply-templates和xsl:call-template
8.2.5xsl:if
8.2.6xsl:choose
8.2.7xsl:for-each
8.2.8xsl:value-of
8.2.9xsl:sort
8.2.10xsl:variable
8.3主要浏览器对XSLT的支持
8.4执行一个转换
8.4.1在IE中执行转换
8.4.2在Firefox中执行转换
8.4.3在服务器端执行转换
8.5创建购物车的XSLT样式表
8.6Xpath及其用途
8.7Xpath的基本功能
8.7.1XPath表达式
8.7.2XPath函数
8.8使用Xpath查询XML文档
8.9使用XSLT和Ajax的购物车示例
8.10本章小结
8.11练习
第9章模式
9.1设计模式背景知识
9.2表单验证
9.2.1问题
9.2.2模式
9.3鼠标悬停模式
9.3.1问题
9.3.2模式
9.4轮询服务器模式
9.4.1问题
9.4.2模式
9.5拖放列表模式
9.5.1问题
9.5.2模式
9.6错误处理模式
9.6.1问题
9.6.2模式
9.7本章小结
9.8练习
第10章使用外部数据
10.1使用XML新闻种子
10.1.1RSS 0.9x
10.1.2RSS 2.0
10.1.3RSS 1.0
10.1.4Atom
10.2从XML种子中提取数据
10.2.1提取XML数据
10.2.2提取字符串数据
10.3使用Ajax构建在线种子阅读器
10.4本章小结
10.5练习
第11章JSON
11.1JSON语法
11.1.1数据类型
11.1.2对象字面量
11.1.3数组字面量
11.1.4使用JSON解析器
11.2数据传输格式
11.3Ajax和JSON
11.3.1创建请求
11.3.2解析响应
11.3.3将JSON数据添加到页面
11.4在PHP中使用JSON
11.5本章小结
11.6练习
第12章高级示例:可排序列表
12.1使用MySQL
12.1.1创建MySQL表
12.1.2向表中添加数据
12.1.3创建数据库连接
12.2创建数据库查询
12.2.1获得当前字段的值
12.2.2排序列表
12.3编辑数据库记录
12.3.1插入记录
12.3.2删除记录
12.4使用Scriptaculous实现拖放
12.4.1创建可拖放的元素
12.4.2创建可排序元素
12.5与用户交互:索引页面
12.6使用Ajax更新
12.6.1创建POST请求
12.6.2创建GET请求
12.6.3结果处理
12.6.4添加样式
12.7文件
12.8本章小结
附录A习题答案
附录BAjax资源:架构和库
附录CJavaScript资源
附录DJavaScript语言参考
书摘插图
第1章Ajax简介
在人类漫长的历史长河中,充斥着各种各样的岔路口、数不清的选择和无数的假想。同样,在人类的科技发展征程中,适者生存的法则残酷而又现实。在过去的“战役”中,我们亲眼目睹了VHS超越Betamax PC超越微型计算机;Internet Explorer(IE)超越NetscapeNavigator;更多类似的状况即将会发生在DVD格式领域的争斗中。超越并不代表取代,并不代表一种技术一定好于另一种技术,只能说明某种技术在特定的时间内能够满足人们的要求,因而变得日益流行起来。时至今日,我们还是能找到许多痴情于Betamax磁带技术的追随者,他们认为这种技术更灵巧、品质更高等。这并不表示这些人的想法是错误的。或许,某种技术的暂时性淘汰让某些人不免有点沮丧和不情愿,但它们毕竟过去也曾辉煌过。
Internet的进化发展也有自己的岔路口。到目前为止,人们仍在进行一场轰轰烈烈的辩论讨论“胖客户端”与“瘦客户端”孰优孰劣。简单讲,就是选择让浏览器处理大多数工作,还是选择让另一端的服务器处理大多数工作。在最开始的时候,也就是90年代中期,“胖客户端”思想似乎马上就要胜出。那个时候,由于IE 4和Netscape Navigator 4的到来,带来了动态HTML技术,该技术使用脚本语言控制页面,从而可以不刷新页面就实现拖放项和隐藏/显示菜单。但是,仅在一年之内,伴随着服务器端技术(例如,ASP和PHP)的引入,技术的发展趋势突然移向“瘦客户端”。到目前,客户端技术仍然存在,但当前Intemet模型和Web页面技术还广泛基于服务器端方法,且口输入数据、发送页面到服务器、等待响应。
当两种相似技术中的某一种迅速进入主导地位时,人们可能会忘记另一种技术的优点。例如,页面验证的某些方面在浏览器上也可以同样做得很好。如果在电子邮件文本框中输入fake e—mail,就不需要到服务器端进行验证。JavaScript也能以同样的效率和更快的速度执行验证。虽然很多人都会在客户端和服务器上同时进行验证,但大多数页面都只会尝试在服务器上进行处理。如果Web总是出现错误,那么处理速度就会变得很慢。尽管带宽已经提高了10倍,但超时、页面未找到、按钮无响应和链接无响应的错误仍然没有消失。因此,用来解决这种反应迟缓的方法正在变得越来越常见。
……