文档介绍:CHAPTER
第 1 章
十年 JavaScript
几乎每本讲 JavaScript 的书都会用很多的篇幅讲 JavaScript 的源起与现状。本
书也需要这样吗?
不。我虽然也这样想过,但我不打算让读者去读一些能够从 Wiki 中摘抄出来
的文字,或者在很多书籍中都可以看到的、千篇一律的文字。所以,我来写写我
与 JavaScript 的故事。在这个过程中,你会看到一个开发者在每个阶段对 JavaScript
的认识,同时可以知道这本书的由来。
当然,一个人的历史,在一门语言的历史面前显得是那样的不足以道。因此
除非编好故事性内容,对本章的前 3 个小节,你也可以选择跳过去。
网页中的代码
新鲜的玩意儿
1996 年末,公司老板 P&J 找我去给他的一个朋友帮忙,做一些网页。那时事实上还
没有说要做成网站。在那个时代,中国的 IT 人中可能还有 2/3 的触网者在玩一种叫“电
子公告板(Bulletin Board System,BBS)”的东西——这与现在的 BBS 很不一样,它是
一种利用现有电话网组成的 PC-BBS 系统,使用基于 的终端登入操作。而另外 1/3
的触网者可能已经开始了互联网之旅,知道了像主页(Home Page)、超链接(Hyper Link)
这样的一些东西。
JavaScript 语言精髓与编程实践(第 2 版)
4 第 1 章十年 JavaScript
我最开始做的网页只用于展示信息,是一个个单纯的、静态的网页,并通过一些超
链接连接起来。当时网页开发的环境并不好(像现在的 Dreamweaver 这类程序,那时只
能是梦想),因此我只能用记事本()来写 HTML。 文件的
scape Navigator 3。
我很快就遇到了麻烦,因为 P&J 的朋友说希望让浏览网页的用户们能做更多的事,
例如搜索等操作。我笑着说:“如果在电子公告板上,写段脚本就可以了;但在互联网上
面,却要做很多的工作。”
事实上我并不知道要做多少的工作。我随后查阅的资料表明:不但要在网页中放一
些表单让浏览者提交信息,还要在网站的服务器上写些代码来响应这些提交信息。我向
那位先生摊开双手,说:“如果你真的想要这样做,那么我们可能需要三个月,或者更久。
因为我还必须学习一些新鲜的玩意儿才行。”
那时的触网者,对这些“新鲜的玩意儿”的了解还几乎是零。因此,这个想法很自
然地被搁置了。而我后来(1997 年)被调到成都,终于有更多的机会接触,而且
浏览器环境已经换成了 Explorer 。
那是一个美好的时代。通过互联网络,大量的新东西很快被传递进来。我终于有机
会了解一些新的技术名词,例如 CSS 和 JavaScript。当时(1997 年 12 月)HTML 的
标准已经确定,浏览器的兼容性开始变得更好, Explorer(以下简称 IE)也越来
scape Navigator(以下简称 NN)而一统天下的趋势。除了这些,我还对在
Delphi 中进行 ISAPI CGI 和 ISAPI Filter 开发的技术也展开了深入的学习。
第一段在网页中的代码
1998 年,我被调回到河南郑州,成为一名专职程序员,任职于当时一家开发反病毒
软件的公司,主要工作是用 Delphi 做 Windows 环境下的开发。而当时我的个人兴趣之一,
就是“做一个个人网站”。那时大家都对“做主页”很感兴趣,我的老朋友傅贵1就专门
写了一套代码,以方便普通互联网用户将自己的主页放到“个人空间”里。同时,他还
为这些个人用户提供了公共的 BBS 程序和一些其他的服务器端代码。但我并不满足于这
些,我满脑子想的是做一个“自己的网站”。我争取到了一台使用 IIS 的服务器,由
于有 ISAPI CGI 这样的服务器端技术,因此一年多前的那个“如何让浏览者提交信息”
1 在中国互联网技术论坛的早期,傅贵先生创建了著名的“Delphi/C++ Builder 论坛”,他也是“()”
的创建者。
JavaScript 语言精髓与编程实践(第 2 版)
网页中的代码 5
的问题已经迎刃而解。而当时更先进的浏览器端开发技术也已经出现,例如 Java Applet。
我当时便选择了一个 Java Applet 来做“网页菜单”。
在当时,在 IE 中显示 Java Applet 之前需要装载整个 JVM(Java Virtual Mach