分享
 
 
 

聊天室实现私聊(三)

王朝other·作者佚名  2008-05-21
窄屏简体版  字體: |||超大  

作者:网络之门

上两节介绍了如何处理聊天室内的谈话内容以及悄悄话的特殊处理,至此。我们去看看谈话内容是如何在客户端显示出来的。请先看看我们的显示对话文件(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)等也是如此类推。。。麻烦大家留意一下。小虎不去修改程序中的不同之处了

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有