好源码站-站长学院 - 首页

| 网络编程 | 数据库类 | 网页设计 | 服务器类 | 网站推广 |

搜索:

收藏本站|| 广告服务 |

您的位置:好源码站-站长学院-> 网络编程-> ASP教程-> 聊天室实现私聊(三)

ASP教程

ASP教程
PHP教程
.Net教程
JSP教程
XML教程
CGI教程

本类阅读TOP10

·动网论坛超级安装指南,新新人类请进来看看
·ASP应用之模板采用
·如何使用ASP建立虚拟的FTP服务器
·使用ASP+jmail进行邮件群发
·用ASP程序组建基于WWW的聊天室
·利用ASP打造个性化论坛(上)
·asp学习注意
·一个asp和javascript传参数的列子
·ASP错误代码
·ASP教程:第十九篇 最新的ASP、IIS安全漏洞

广告
聊天室实现私聊(三)

作者:未知 来源:未知 加入时间:2007-6-12 www.haocodes.com

上两节介绍了如何处理聊天室内的谈话内容以及悄悄话的特殊处理,至此。我们去看看谈话内容是如何在客户端显示出来的。请先看看我们的显示对话文件(top.ASP)

*top.ASP

 

<% @language="vbscript" %>
<%
Response.Expires=0
'response.buffer=true
%>
<meta http-equiv="refresh" content="2.5">
<body bgcolor="<%=application("zj_1color")%>" topmargin="0" leftmargin="0">
<I><center><font color="#FFFF00" size=4><%=application("zj_1title")%></font></center></I>
<%
if session("userzj_1")="" then
session("userzj_1")=""
session("zj_1level")=""
session("zj_1start")=""
session("zj_1total")=0
session("zj_1boot")=""
session("zj_1counter")=0
session("zj_1open")=""
'session.abandon
%>
<script LANGUAGE="JavaScript">
parent.location="timeout.htm"
</script>
<%
response.end
end if

'是否在捣乱?
for n=1 to 40
if session("userzj_1")=application("peoplezj_1"&n) then
exit for
end if

if n=40 then
session("zj_1boot")="true"
%>
<script LANGUAGE="JavaScript">
parent.location="boot.htm"
</script>
<%
end if

next
%>
<script LANGUAGE="JavaScript">
<%

if session("zj_1counter")<>application("zj_1counter") then
if session("zj_1counter")<application("zj_1counter") then
for I=session("zj_1counter")+1 to application("zj_1counter")
%>
parent.middle.document.writeln("<%=application("zj_1chats")(I)%>")
<%

next    

else
for I=session("zj_1counter") to 20
if application("zj_1counter")<>1 then
%>
parent.middle.document.writeln("<%=application("zj_1chats")(I)%>")
<%
end if
next

for I=1 to application("zj_1counter")

%>
parent.middle.document.writeln("<%=application("zj_1chats")(I)%>")
<%
next
end if

if session("zj_1open")="true" then

session("zj_1counter")=application("zj_1counter")
end if
end if

'公告

if session("zj_1public")<>application("zj_1public") then
%>
parent.middle.document.writeln("<%=application("zj_1public")%>")

<%
session("zj_1public")=application("zj_1public")
end if

'有耳语吗?
if session("zj_1chat")<>application("zj_1chat") then
if application("zj_1owner")=session("userzj_1") or application("zj_1chatto")=session("userzj_1") or application("zj_1chatto")="ALL" then

%>
parent.middle.document.writeln("<%=application("zj_1chat")%>")
<%
end if
session("zj_1chat")=application("zj_1chat")
end if

application("peoplezj_1_appear"&n)

count=0
for n=1 to 40
if application("peoplezj_1"&n)<>"" then
count=count+1

end if
next
if session("zj_1total")<>count then
session("zj_1total")=count
session("zj_1refresh")="true"

%>
</script>

<%
end if

response.flush

%>

  聊天室具备了管理(把不受欢迎的人踢出聊天室,公告等的功能,因此与发言处理和悄悄话功能无关的部分小虎不作解说了。

  前面我们用了一个application("zj_1counter")的公有对象来保存最新发言所在的缓冲元素。用session("zj_1counter")来保存当前用户本身已显示的对话元素。在每次调用top.ASP这个文件,只要对比出session("zj_1counter")与application("zj_1counter")的取值不同,就可以得知需要显示新的交谈发言。而每次完成显示,又必须把两个计数值统一个。不然就会发生重复显示对话内容的错误了。

  又于缓冲区是循环使用的,比如说当前用户现示的对话内容是存储在application("chats")(18)中,而新的发言已经重新回到application("chats")(2)了,因此本次需要显示4条发言,上面的详细处理解说小虎不做了。大家仔细看看。然后想一想,是很容易明白的。

  又于耳语和公共对话application("chat")(n)是分开处理的,因此公有对话处理完毕后,就到了耳语的处理。耳语标志是session("chat")(它用来存储上一次的耳语内容,当对比出application("chat")本次的耳语内容于上次的不符,就可以得知需要显示耳语了,当耳语显示后,别忘了把session("chat")与application("chat")同步哦,不然耳语就在你耳边“响”个不停,吵死了。。

 

  这里向大家介绍了处理耳语的一种方法,做聊天室的方法很多。好与坏会影响到聊天室的性能(速度。。容错性等等)。制作一个好的聊天室是很有技巧的。在这一点上。小虎感到自己的聊天室还是做的不算好。有待改进。

  本例子的聊天室地址:http://active.t500.net。欢迎大家作客“素素心语

*注程序中的session("zj_1chat")与解说中的session("chat")实际是同一个变量,application("zj_1chats")(n)等也是如此类推。。。麻烦大家留意一下。小虎不去修改程序中的不同之处了



相关文章
  • 用ASP程序组建基于WWW的聊天室
  • 一个简单聊天室的建立.(供学习参考)
  • 聊天室实现私聊(四)
  • 聊天室实现私聊(二)
  • 聊天室实现私聊(一)

  • 关于本站服务条款广告服务客服中心发布文章

    客服QQ:6508128
    好源码站-版权所有 ICP备05000822号 www.haocodes.com