ASP编程入门进阶(十一):Chat聊天程序

2018-09-06 11:13

阅读:1777

  通常的聊天室所采用的程序,也就是Chat程序了,其基本结构原理是不会采用到数据库的。那究竟采用什么技术呢?我们知道ASP变量当中Session变量的作用是记录单个用户的信息,并且能跟踪用户的行为;Application对象的作用则起的全局变量,可以实现站点多个用户之间在页面中共享信息的。

那可以想象,在针对当前聊天程序中,一个聊天成员即为一个Session变量,聊天成员之间的会话则当成Application变量进行共享显示,以使各成员都能看见。

那下面就采用一很经典的实例程序,进行了解和分析。

1,chat.asp


<%If Request.ServerVariables(Request_Method)=GET then%>
<form method=post action=chat.asp>
<input type=text name=nick value=your nick name><p>
<input type=submit value=come in><p>
<input type=hidden name=log size=20 value=1>
</form>
<%Response.End
Else
Response.clear
dim talk
If Request.Form(nick)<> then
Session(nick)=Request.Form(nick)
End if
%>

<form method=post action=chat.asp name=form1>
<%=Session(nick)%>说话:
<input type=text name=talk size=50><br>
<input type=submit value=提交>
<input type=reset value=取消></p>
</form>
<a href=chat.asp>离开</a><br>

<%
If Request.Form(log)<>1 then
If trim(Request.Form(talk))= then
talk=Session(nick)&不说一句话就想来敷衍大家
Else
talk=trim(Request.Form(talk))
End If
Application.lock
Application(show)=来自&Request.ServerVariables(remote_addr)& 的 &Session(nick)&在&time& 的时候说: &talk& <br> &Application(show)
Application.UnLock
Response.Write Application(show)
End if
%>
<%End if%>



简单解释:
1,<%If Request.ServerVariables(Request_Method)=GET then%>的作用就是判断当前页面接受的方式,如果为GET方式则会显示“要求输入昵称”的表单页。因为页面的默然接受方式为GET,当在URL地址栏直接敲入时,也就是没有任何信息的时候,就应该显示要求“输入昵称”。

2,<input type=hidden name=log size=20 value=1>和下面的If Request.Form(log)<>1 then是有关联的:显然第一次输入昵称进入,同样将log隐藏域发送。但作为第一次的进入是无任何语句发言的,所以判断接受的log值不为1,亦即非首次登录(表示已经登录)时,执行内部相关聊天显示程序。

3,trim(Request.Form(talk))=,trim就是个函数了:删去字符串前,后的空格。初此,还有rtrim():去掉字符串后的空格;ltrim():去掉字符串前的空格。

<script language=vbs> cnbruce= This is a Test ! alert(全部显示:&cnbruce) alert(删除前面空格:&ltrim(cnbruce)) alert(删除后面空格:&rtrim(cnbruce)) alert(删除前后空格:&trim(cnbruce)) </script>
[Ctrl+A 全部选择进行拷贝 提示:可先修改部分代码,再点击运行]

4,
Application.lock
Application(show)=来自&Request.ServerVariables(remote_addr)& 的 &Session(nick)&在&time& 的时候说: &talk& <br> &Application(show)
Application.UnLock

提取精华得

Application.lock
Application(show)=talk& <br> &Application(show)
Application.UnLock


可以看到是Application变量的叠加功能,每次Application(show)的值都建立在原有Application变量值的基础之上,再附加上最新的聊天内容:talk变量的值。这样就保证所有用户都能看到的共享信息了。

未完待叙


评论


亲,登录后才可以留言!