在20世纪90年代,Web开发得到了飞速发展,现在创建静态或者固定大小的网站已经意义不大了。任何主流的网页设计都必须考虑未来的扩展需求。同样,它对每个人来说都应该是可访问的(这并不意味每个人都会得到相同的显示效果:一个好的多层布局。举个例子,它可能在高分辨率的显示器上显示很好却很难在手机或者PDA上使用),并且是可以国际化的。 我们不可能花更多的时间来做个永远都好用的产品。因为Web是与内容相关的,且需要不断地变化,如果我们不经常更新网络产品并让其它数据源为其添加新数据或从中获取数据,那么它很快就会过时。
简介已经不少了——你拿这本书是来学习JavaScript的。在正式探讨它之前,让我们先来快速介绍一下JavaScript的历史和渊源。
在这一章你会学到:
l JavaScript是什么以及你能拿它来做什么
l JavaScript的优缺点
l 如何把JavaScript添加到一个网页中以及它的基本语法
l 面向对象编程(OOP)与JavaScript的关系
l 如何编写并运行一个简单的JavaScript程序
现在的情况是你已接触到了JavaScript,并且会有一个想法,它到底是什么以及用它能干什么呢?所以我们先快速了解一下这种语言的一些基础和用途。 如果你对JavaScript已经有了一定的了解,想简单了解一下更多新的特性和概念,你可以直接跳到第三章。不用在这占用你太多的时间---不过也有可能一些信息你已经遗忘了,复习一下也不会有坏处。
1.1. 为什么要用JavaScript
在Web发展的初期,主要有HTML和通用网关接口(CGI)。HTML定义了大部分的文本文档并指示用户代理(通常是网页浏览器)如何来显示——举个例子,标签<p></p>之间的文字就变成一个段落。在这个段落中你可以使用标签<h1></h1>来定义最主要的页面标题。注意大多数开始标签,都会有对应的以</开头的结束标签。
HTML有个缺点—它的状态是固定不变的。如果你想改变一些东西或者使用用户输入的数据,你需要和服务器进行一个回合的请求。使用动态技术(如ColdFusion, ASP, ASP.NET, PHP,或 JSP) 你从表单或者参数中把信息发送到服务器,服务器然后来完成计算/测试/数据库查找等。应用服务器会使用相应的这些技术来写一个HTML文档来显示结果,然后把处理的结果以HTML文档的形式返回到浏览器来供用户查看。
这样做的问题在于任何时候只要有变化,这整个过程都需要再重复一边(并且重新加载网页)。这样显得比较笨重缓慢,并且没有新媒介“Internet”承诺我们的那么美好。现在呢,至少是西方世界已经从快速的Internet连接中获得了好处。但是显示一个页面仍然意味着重新加载,这是一个比较慢且经常失败的过程(甚至会得到一个404错误提示)。
我们需要更加灵活的东西——允许web开发者可以快速对用户给出反馈信息并且不用从服务器来重新加载页面来改变HTML。可以想象一个表单每次需要重新加载,且它都有一个文本字段中都包含一个错误,与快速的获得错误提示且不用重新从服务器加载页面,哪个更方便使用呢?这就是一个JavaScript可以为你完成的一个例子。
一些信息并不需要依靠服务器,比如一些计算和校验表单信息。JavaScript可以被客户代理(通常是一个浏览器)在用户的电脑上执行。我们把这叫做客户端代码。这样可以减少与服务器的交互成本并且使网站变得更加快速。