虽然服务器端 的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可以下载书中示例的完整源代码。
本书的结构
1. Javascript是什么?
这一章解释了Javascript的起源,它是怎样长生的,如何发展,现状如何。引入的概念包括Javascript和ECMAScript、文档对象模型DOM以及浏览器对象模型BOM之间的关系。此外还有与欧洲计算机制造商协会ECMA和W3C有关的各项标准。
2. ECMAScript基础
这一章分析了Javascript基于的核心技术ECMAScript。从变量和函数的声明到使用和理解原始与引用值,它说明了编写Javascript代码必需的基础语法和概念。
3. 对象基础
这一章的重点是用Javascript进行面向对象的程序设计(OOP)的基础。涵盖的主题包括用各种方法定义定制的对象、创建对象实例以及了解Javascript和Java中的OOP的相同点和不同点。
4. 继承性
这一章继续解释Javascript中的OOP,说明了继承机制是如何作用的,其中讨论了各种实现继承性的方法,并且还比较了它们与Java中的继承性的异同。
5. 浏览器中的Javascript
这一章解释了如何把Javascript嵌入用各种语言(如HTML、SVG和XUL)编写的Web页。此外还介绍了浏览器对象模型BOM及它的各种对象和接口。
6. DOM基础
这一章介绍了Javascript中实现的DOM,包括专门适用于Web开发者的DOM概念。后面用HTML、SVG和XUL编写的示例中使用了这些概念。
7. 正则表达式
这一章的重点是Javascript实现的正则表达式,这是数据验证和字符串操作的强有力工具。本章探讨了正则表达式的起源、语法以及它在各种程序设计语言中用法。本章的结尾探讨了正则表达式在Javascript实现中的异同。
8. 探测浏览器和操作系统
这一章解释了编写能在各种Web浏览器上运行的Javascript脚本的重要性。它讨论了两种探测浏览器的方法,即对象/特性探测法和用户-代理字符串探测法,每种方法的优点和缺点都被列了出来。
9. 事件
本章讨论了Javascript中最重要的概念之一——事件。事件是把Javascript和任何标记语言编写的Web-用户界面连接在一起的主要方法。这一章介绍了事件处理的各种方法和事件流的概念(包括冒泡和捕捉)。
10. 高级DOM技术
这一章介绍了一些更高级的DOM特性,包括范围和样式表操作。我举了一个例子,说明如何使用这些技术,此外还讨论了如何实在跨浏览器的支持。
11. 表单和数据完整性
这一章讨论了使用表单时数据验证的重要性。在介绍处理验证的方法时,还应用了前面介绍过的概念,如正则表达式、事件和DOM操作。
12. 表排序
这一章应用了前面介绍过的多种特性,来实现客户端的动态表排序。其中包括用Javascript进行排序的深度讨论,以及如何用事件、DOM操作和比较运算符开发各种Web浏览器都能使用的通用表排序协议。
13. 拖放
这一章解释了拖放的概念以及它们在Javascript和Web浏览器中的应用。其中讨论了系统拖放的概念和模拟拖放的概念,结尾创建了一个能跨浏览器使用的标准拖放界面。
14. 错误处理
这一章通过讨论try…catch语句和onerror事件处理程序的用法介绍了Javascript中的事件处理概念。另一个主题是用throw语句创建定制的错误消息以及Javascript调试器的用法。
15. Javascript中的XML
这一章介绍了Javascript用于读取和操作可扩展标记语言(XML)数据的特性。我解释了各种Web浏览器的支持和对象的不同,还为跨浏览器编码提供了建议。此外,本章还介绍了如何用XSLT语言转换客户端的XML数据。
16. 客户-服务器通信
这一章探讨了Javascript与服务器通信的各种方法。这些方法包括使用cookie和基于Javascript的HTTP请求。此外,这一章还解释了如何在不使用隐藏框架的情况下实现GET和POST HTTP请求。
17. Web服务
这一章介绍了如何用Javascript提供Web服务,其中讨论了Internet Explorer和Mozilla中使用的不同方法,还为原本没有Web服务支持的浏览器提供了一种基本的Web服务解决方案。
18. 用插件进行交互
这一章解释了Javascript和各种浏览器插件(如Java小程序、SVG文档和ActiveX控件)之间的通信方法。其他主题包括如何编写能与Javascript一起使用的插件。
19. 部署问题
这一章的重点是完成Javascript编码后的操作。它说明了在把Javascript解决方案部署到Web站点或Web应用程序之前要做哪些操作。其中的主题包括安全问题、国际化问题、优化、知识产权保护和Section 508 Compliance。
20. Javascript的发展
这一章探察了Javascript的未来,介绍了这种语言的发展方向。其中讨论了ECMAScript的ECMAScript 4和XML。