创建显示页
最后需要创建一个显示这些信息的页面,这个页面将所有的访问者提交的信息显示出来。这个页面每隔5秒钟自动刷新,这使用了客户段牵引请注意这里面HTML的<META>标记所包含的语句,(在Active Server Page中添加一个Refresh的Header)
下面的第一个脚本用来确认当前ASP文件的全部URL地址,这里面还是使用了ServerVariable集合并将得到的全部路径加文件名赋值给MySelf的变量。这个变量就用于在<META>标记包含的语句中指示更新的文件名称及路径。
后面的主要脚本用来显示Talk队列,即所有人发送的信息,这里面用的是For…Next循环(见图17.4)。例子17.3是显示页的全部Active Server Pages代码。
例17.3:
<%
MyServer=Request.ServerVariables(“SERVER_NAME”)
MyPath=Request.ServerVariables(“SCRIPT_NAME”)
MySelf=”Http://”&MyServer&MyPath
%>
<HTML>
<HEAD>
<META HTTP-EQUIV=”REFRESH” CONTENT=”5;<%=MySelf%>”>
<TITLE>迈至科聊天室应用示例之显示页</TITLE>
</HEAD>
<BODY>
<P Align=Right><%=NOW%></P>
<%
TempArray=Application(“Talk”)
For i=0 to Application(“Talk”)-1
Response.Write(“<p>”&Temparray(i))
NEXT
%>
</BODY>
</HTML>
图17.4 显示页
这样,就可以每隔5秒钟将队列中的消息显示一遍,达到近似于实时交流的目的。
扩展聊天室项目
有很多种方法可以使这种聊天室更加完备,比如说,现在每次只能显示5个信息,那么如果访问者比较多,这就很不够了,因此你可以在最初的Global.asa中将TempArray队列设得大一些,然后在发送信息页相应部分进行修改其限制数目。
这个聊天室的信息发送显然是允许HTML格式的,当然,你可以替访问者考虑一些,比如说,用CheckBox来允许访问者选择自己喜欢的信息发送颜色。
最后,相当重要的是,用户发送的信息应当含有用户代号,不过,这也并不困难,还记得Session变量是干什么的吗?给每个用户登录时创建一个Session变量记录其代号,然后每次信息发送时连同该Session变量一同发送。
注意
本书的很多例子都可以在http://aspsite.com中找到。