JavaScript和jQuery实战手册
JavaScript是一种程序设计语言,它允许用动画、交互性和动态的视觉效果来增强HTML的功能。
JavaScript可以通过提供即时反馈而使得Web页面更为有用。例如,一个具备JavaScript功能的购物车页面,当访问者选择要购买的一件商品的时候,可以即时显示总金额,以及税费和运费。当某人试图提交一个遗漏了必需信息的Web表单的时候,JavaScript可以产生一条错误消息。
JavaScript还允许创建有趣的、动态的和交互性的界面。例如,使用JavaScript,可以将由缩略图组成的一个静态页面转换为一场包含动画的幻灯片放映(我们将在10.2.2节学习如何做到这点)。或者,可以做一些更加微妙的事情,例如,通过将内容组织到很小的面板,访问者只要简单地单击一下鼠标就可以访问它们,从而可以在页面上放置更多的信息,而不必使得页面显得拥挤(参见10.1.1节)。或者,添加一些有用的和吸引人的内容,例如,弹出的工具提示为Web页面上的项目提供补充信息(参见10.4.1节)。
JavaScript的主要优点之一是其即时性。它使得页面可以立即对于某人和页面的交互操作做出响应,例如单击一个链接、填充一个表单,或者只是在屏幕上移动鼠标等操作。JavaScript不会遭遇到和PHP这样的服务器端编程相关的令人沮丧的延迟,而后者则依赖于Web浏览器和Web服务器之间的通信。因为JavaScript不会依赖于频繁加载和重新载入Web页面,使用它创建的Web页面给人们的感觉及其操作都更像是桌面程序,而不像是一般的Web页面。
如果你访问Google Maps(http://maps.google.com/),将会看到JavaScript的实际应用。Google Maps允许我们查看所在城市的地图(或者很多其他地方的地图),放大以获取街道和公交车站的详细视图,或者缩小以得到如何穿越城镇、州或全国的鸟瞰图。尽管在Google之前有很多的地图站点,但它们总是要求重新载入多个Web页面(这通常是一个很慢的过程)来获得想要的信息。相反,Google Maps不需要刷新页面,它对我们的选择做出快速响应。
使用JavaScript创建的程序,既有真正简单的程序(例如,弹出一个新的浏览器窗口,其中有一个Web页面),也有像Google Docs(http://docs.google.com/)这样功能完备的Web应用程序,而后者允许我们使用Web浏览器来创建幻灯片、编辑文档和创建电子表格,其感觉就像是在计算机上直接运行的程序一样。
JavaScript简史
JavaScr ipt由Netscape于1995年后期发明,它几乎和Web本身一样老。尽管JavaScript在如今广受重视,但是它却有着颇为跌宕起伏的历史。一度认为它是狂热爱好者的编程语言,用来添加不太有用的效果,如像证券报价器一样在Web浏览器状态栏滚动的消息,或者是跟随鼠标光标在页面上移动的、动画的蝴蝶效果。在JavaScript的早期,很容易在网上找到数以千计的JavaScript程序(也叫做脚本),但是,很多这样的脚本通常不会在所有的Web浏览器上工作,并且有时候甚至导致浏览器崩溃。
注意:JavaScript和Java编程语言毫无关系。JavaScript最初名为LiveScript,但是,Netscape的市场营销人员确信,如果试图和当时热门的Java语言联系起来,JavaScript应该会得到更多的关注。但是,不要把两者混为一谈,尤其是在求职面试的时候。
在早期,JavaScript也遭遇到两个主流浏览器Netscape Navigator和Internet Explorer不兼容的问题。由于Netscape和Microsoft都试图通过添加新的和(表面上)更好的功能来超越对方,这两个浏览器常常以不同的方式工作,这使得人们很难创建在两种浏览器中都能很好工作的JavaScript程序。
注意:在Netscape引入了JavaScript之后,Microsoft引入了jScript,这是它们自己的JavaScript版本,包含在Internet Explorer之中。
黎明前的曙光就要来临了,并且当前的浏览器(如Firefox、Safari、Chrome、Opera和Internet Explorer 9)都将它们操作JavaScript的很多方式标准化了,这使得编写在大多数浏览器下工作的JavaScript程序容易一些了(在当前的Web浏览器中仍然有一些不兼容,因此,你需要学习一些处理跨浏览器问题的技巧。我们将在本书中学习如何克服浏览器不兼容性的问题)。
在过去的几年里,通过在Google、Yahoo和Flickr等特色鲜明的网站上的应用,JavaScript已经获得了重生。这些站点广泛地使用JavaScript来创建交互式的Web应用程序。现在来学习JavaScript是再好不过的时机了。有了已知的充足的知识和已经编写的高质量的脚本,即便你是初学者,也可以为Web站点添加高级的交互,你完全不必要成为一名计算机科学家。
注意:JavaScript也称为ECMAScript。ECMAScript是JavaScript规范的“正式”名称,它由名为Ecma国际(http://www.ecmascript.org/)的国际标准化组织负责开发和维护。
JavaScript随处可见
JavaScript并不是仅用于Web页面。它已经被证明是如此有用的一种编程语言,如果学习了JavaScript,你可以创建Yahoo Widget和Apple的Dashboard Widget,为iPhone开发程序,并且在像Acrobat、Photoshop、Illustrator和Dreamweaver这些众多的Adobe程序中加入脚本编程功能。实际上,Dreamweaver已经为聪明的JavaScript程序员提供了一种方式来向程序中添加他们自己的命令。
此外,Flash的编程语言ActionScript也是基于JavaScript的,因此,如果学习了JavaScript的基础知识,你将能够为承担Flash编程项目做好充分准备。