虽然服务器端 的Netscape Enterprise Server和Active Server Pages (ASP)都曾经支持过Javascript,但它主要还是Web浏览器使用的客户端脚本语言。目前它的重点是帮助开发者与Web页面和Web浏览器窗口本身进行交互。
Javascript是一种不严格基于Java的面向对象程序设计语言,以嵌入式Java小程序的形式在Web上广为使用。虽然Javascript的语法和程序设计方法都与Java相似,但它并非Java语言的简化版本。相反的,Javascript是一种独立的语言,在全世界的Web浏览器中都可以找到它,启用它可以增强用户与Web站点和Web应用程序之间的交互。
本书从最早期的Netscape浏览器中的Javascript开始讲起,直到当前它对XML和Web服务的具体支持。你将学到如何扩展这种语言,使它适应特殊的需求,还会学到如何在没有Java或隐藏框架这些媒介的情况下创建无缝的客户-服务器通信。简而言之,你将学到如何将Javascript解决方案应用到Web开发者面对的商业问题上。
本书涵盖的内容
本书提供的是开发者级别的Javascript介绍,包括很多高级的有用特性。
本书开头探讨了Javascript的起源以及迄今为止的发展。之后详细介绍了构成Javascript实现的各个组件,着重介绍了ECMAScript和文档对象模型DOM这样的标准。此外还讨论了不同Web浏览器中使用的Javascript实现的不同。
基于上述讨论,本书开始介绍Javascript的基本概念,包括面向对象的程序设计版本、继承性以及它在各种标记语言(如HTML)中的用法。在探讨了浏览器检测技术,介绍过在Javascript中使用正则表达式后,本书对事件和事件处理进行了深度考察。之后,它应用了所有这些知识,来创建动态用户界面。
本书最后一部分的重点是与在Web应用程序中部署Javascript解决方案有关的问题。这些主题包括错误处理、调试、安全性、优化/模糊化、XML和Web服务器。
本书的适用对象
本书针对的读者群有三类:
- 熟悉面向对象程序设计方法,由于Javascript与传统的OO语言(如Java和C++)相关所以想学习它的的有经验的开发者。
- 尝试提高Web站点和Web应用程序可用性的Web应用程序开发者。
- 目的在于更好理解Javascript语言的初学者。
此外,如果你熟悉下列相关技术,那么表明本书也适用于你:
- XML
- XSLT
- Java
- Web Services
- HTML
- CSS
本书针对的不是没有计算机科学的基础背景的初学者,也不是那些想在Web站点添加一些简单的用户交互特性的人。这些读者应该阅读Wrox编写的《Beginning Javascript》一书的第二版(Willey Publishing, Inc., ISBN 0-7645-5587-1)。
使用本书的前提需求
要运行本书中的示例,需要下列软件:
Windows 2000、Windows Server 2003、Windows XP或Mac OS X
Internet Explorer 5.5或更高版本(Windows)、Mozilla 1.0或更高版本(所有平台)、Opera 7.5或更高版本(所有平台)、Safari 1.2或更高版本(Mac OS X)
从本书的站点http://www.wrox.com可以下载书中示例的完整源代码。
本书的结构
- Javascript是什么?
这一章解释了Javascript的起源,它是怎样长生的,如何发展,现状如何。引入的概念包括Javascript和ECMAScript、文档对象模型DOM以及浏览器对象模型BOM之间的关系。此外还有与欧洲计算机制造商协会ECMA和W3C有关的各项标准。
- ECMAScript基础
这一章分析了Javascript基于的核心技术ECMAScript。从变量和函数的声明到使用和理解原始与引用值,它说明了编写Javascript代码必需的基础语法和概念。
- 对象基础
这一章的重点是用Javascript进行面向对象的程序设计(OOP)的基础。涵盖的主题包括用各种方法定义定制的对象、创建对象实例以及了解Javascript和Java中的OOP的相同点和不同点。
- 继承性
这一章继续解释Javascript中的OOP,说明了继承机制是如何作用的,其中讨论了各种实现继承性的方法,并且还比较了它们与Java中的继承性的异同。
- 浏览器中的Javascript
这一章解释了如何把Javascript嵌入用各种语言(如HTML、SVG和XUL)编写的Web页。此外还介绍了浏览器对象模型BOM及它的各种对象和接口。
- DOM基础
这一章介绍了Javascript中实现的DOM,包括专门适用于Web开发者的DOM概念。后面用HTML、SVG和XUL编写的示例中使用了这些概念。
- 正则表达式
这一章的重点是Javascript实现的正则表达式,这是数据验证和字符串操作的强有力工具。本章探讨了正则表达式的起源、语法以及它在各种程序设计语言中用法。本章的结尾探讨了正则表达式在Javascript实现中的异同。
- 探测浏览器和操作系统
这一章解释了编写能在各种Web浏览器上运行的Javascript脚本的重要性。它讨论了两种探测浏览器的方法,即对象/特性探测法和用户-代理字符串探测法,每种方法的优点和缺点都被列了出来。
- 事件
本章讨论了Javascript中最重要的概念之一——事件。事件是把Javascript和任何标记语言编写的Web-用户界面连接在一起的主要方法。这一章介绍了事件处理的各种方法和事件流的概念(包括冒泡和捕捉)。
- 高级DOM技术
这一章介绍了一些更高级的DOM特性,包括范围和样式表操作。我举了一个例子,说明如何使用这些技术,此外还讨论了如何实在跨浏览器的支持。
- 表单和数据完整性
这一章讨论了使用表单时数据验证的重要性。在介绍处理验证的方法时,还应用了前面介绍过的概念,如正则表达式、事件和DOM操作。
- 表排序
这一章应用了前面介绍过的多种特性,来实现客户端的动态表排序。其中包括用Javascript进行排序的深度讨论,以及如何用事件、DOM操作和比较运算符开发各种Web浏览器都能使用的通用表排序协议。
- 拖放
这一章解释了拖放的概念以及它们在Javascript和Web浏览器中的应用。其中讨论了系统拖放的概念和模拟拖放的概念,结尾创建了一个能跨浏览器使用的标准拖放界面。
- 错误处理
这一章通过讨论try…catch语句和onerror事件处理程序的用法介绍了Javascript中的事件处理概念。另一个主题是用throw语句创建定制的错误消息以及Javascript调试器的用法。
- Javascript中的XML
这一章介绍了Javascript用于读取和操作可扩展标记语言(XML)数据的特性。我解释了各种Web浏览器的支持和对象的不同,还为跨浏览器编码提供了建议。此外,本章还介绍了如何用XSLT语言转换客户端的XML数据。
- 客户-服务器通信
这一章探讨了Javascript与服务器通信的各种方法。这些方法包括使用cookie和基于Javascript的HTTP请求。此外,这一章还解释了如何在不使用隐藏框架的情况下实现GET和POST HTTP请求。
- Web服务
这一章介绍了如何用Javascript提供Web服务,其中讨论了Internet Explorer和Mozilla中使用的不同方法,还为原本没有Web服务支持的浏览器提供了一种基本的Web服务解决方案。
- 用插件进行交互
这一章解释了Javascript和各种浏览器插件(如Java小程序、SVG文档和ActiveX控件)之间的通信方法。其他主题包括如何编写能与Javascript一起使用的插件。
- 部署问题
这一章的重点是完成Javascript编码后的操作。它说明了在把Javascript解决方案部署到Web站点或Web应用程序之前要做哪些操作。其中的主题包括安全问题、国际化问题、优化、知识产权保护和Section 508 Compliance。
- Javascript的发展
这一章探察了Javascript的未来,介绍了这种语言的发展方向。其中讨论了ECMAScript的ECMAScript 4和XML。
规约
为了帮助你最大限度的利用本书,我在全书中使用了大量规约。
这样的矩形框中放置的是重要的、不容忘记的信息,它与周围的内容直接相关。
提示、暗示、小窍门和离题话都像这样用斜体显示,前面有缩进。
至于文本中的样式:
在介绍重要的单词时,高亮显示它们
用Ctrl+A这样的形式说明键盘按键
正文中的文件名、URL和代码用persistence.properties这样的形式显示
代码有两种形式:
PXXV 代码
源代码
在练习本书中的示例时,可以选择手动输入代码,也可以使用本书附带的源代码文件。在http://www.wrox.com处可以下载到本书中使用的所有源代码。进入该站点后,只需要找到本书的名字(或者使用Search框,又或者点击列表中的一个名字),点击本书的细节页面中的Download Code链接,可以找到本书中的源代码。
由于许多数的名字相似,所以用ISBN号检索本书更容易找到它。本书的ISBN号是0-7645-7908-8。
下载了代码后,用解压缩工具把它解压缩。此外,还可以在Wrox的主下载页面http://www.wrox.com/dynamic/books/download.aspx处找到本书和其他Wrox出版的书的代码。
勘误表
我们一直努力确保代码或正文中没有错误。不过,是人都会犯错误。如果你发现了我们出版的书中的错误,例如拼写错误或代码错,请告知我们,我们将会非常感谢。把勘误表发给我们,就能节省其他读者的时间,同时还能帮助我们提高信息的质量。
在http://www.wrox.com处,用Search框或名字列表找到本书的名字,然后在本书的细节页面上点击Book Errata链接,可以找到本书的勘误表。在这个页面上可以找到本书已经发现的所有的错误,它是由Wrox的编辑发布的。在www.wrox.com/misc-pages/booklist.shtml处可以找到Wrox出版的所有书的列表,其中有每本书的勘误表的链接。
如果在Book Errata页面上没有找到你发现的错误,请访问www.wrox.com/contact/techsupport.shtml页面,填写其中的表单,把你发现的错误发送给我们。我们将检查你提交的信息,如果正确,就会把它发布在本书的勘误表页面上,并在本书以后的版本中纠正这一错误。
P2p.wrox.com
关于本书的讨论,请加入P2P论坛p2p.wrox.com。该论坛是基于Web的系统,你可以在此发布与Wrox出版的书和相关的技术有关的消息,与其他读者和技术员进行交流。该论坛有预订功能,当你选择的感兴趣的主题有新帖子发布时,就会把它通过email发送给你。Wrox的作者、编辑、业界的其他专家和像你一样的读者都会出现在这些论坛中。
在http://p2p.wrox.com处可以找到各种对你有用的论坛,不只是对你阅读本书有帮助,对你开发程序也有帮助。加入论坛的步骤如下:
- 访问p2p.wrox.com,点击Register链接。
- 阅读使用条款,点击Agree链接。
- 填写所有必需的信息以及你想提供的选填信息,点击Submit链接。
- 你将收到一封email,其中具有验证你的帐户的信息以及完成加入论坛的操作的信息。
即使不加入P2P,也可以阅读论坛中的消息,不过要发布自己的消息,就必须加入论坛。
加入论坛后,可以发布新消息,回复其他用户发布的消息。可以随时在Web上阅读论坛上的消息。如果想让某个论坛的新消息以email的形式发送给你,可以点击Subscribe to This Forum图标,然后在论坛列表中选择你要预订的论坛的名字。
要了解更多如何使用Wrox P2P论坛的信息,请阅读P2P FAQs,可以看到论坛软件是如何运行的,以及与P2P和Wrox出版的书相关的常见问题的答案。要阅读FAQ,请点击P2P页面上的FAQ链接。







