用JavaScript来写浏览器上的应用

我要做一个聊天室

大概是在1998 年12 月中旬,我的个人网站完工了。这是一个文学网站,这个网站在浏览器上用到了Java Applet和JavaScript,并且为IE 4.0的浏览器提供了一个称为“搜索助手”的浮动条(FloatBar),用于快速地向服务器提交查询文章的请求。而服务器上则使用了用Delphi开发的ISAPI/CGI,运行于当时流行的Windows NT上的IIS 系统。

我接下来冒出的想法是:要做一个聊天室。因为在我的个人网站中,论坛、BBS等都有其他网站免费提供,唯独没有聊天室。

1999 年春节期间,我在四川的家中开始做这个聊天室并完成了原型系统(我称之为beta 0);一个月后,这个聊天室的beta 1终于在互联网上架站运行(如图1-1 所示)。

 

 

支持JAVAscript的免费博客_delphi

 

这个聊天室的功能集设定见表1-1。

 

支持JAVAscript的免费博客_javascript_02

 

在这个聊天室的右上角有一个“隐藏帧”,是用Frameset来实现的。这是最早期实现Web RPC(Remote Procedure Call)的方法,那时网页开发还不推荐使用IFrame,也没有后来风行的AJAX。因此从浏览器下方的状态栏中,我们也可以看到这个聊天室在调用服务器上的.dll——这就是那个用Delphi写的ISAPI CGI。当时我还不知道PHP,而且ASP也并不那么流行。

这个聊天室在浏览器上大量地使用了JavaScript。一方面,它用于显示聊天信息、控制CSS显示和实现界面上的用户交互;另一方面,我用它实现了一个Command Center,将浏览器中的行为编码成命令发给服务器的ISAPI CGI。这些命令被服务器转发给聊天室中的其他用户,目标用户浏览器中的JavaScript代码能够解释这些命令并执行类似于“更名”、“更新列表”之类的功能——服务器上的ISAPI基本上只用于中转命令,因此效率非常高。你可能已经注意到,这其实与现在的AJAX 的思想如出一辙。

虽然这个聊天室在beta0 时还尝试支持了NN 4,但在beta 1时就放弃了,因为IE 4 提供的DHTML模型已经可以使用insertAdjacentHTML 动态更新网页了,而NN 4仍只能调用document.write 来修改页面。