首页 >> 读书频道 >> 电脑 >> 也谈在asp聊天室程序中实现悄悄话功能
 
· 实现聊天室的悄悄话功能(
· 实现聊天室的悄悄话功能(
· 实现聊天室的悄悄话功能(
· 一个只有一个文件,功能强
· 多层回复的基于 ASP
· 多层回复的基于 ASP
· 多层回复的基于 ASP
· 建立一个小型的购物车程序
· 制作购物车程序!
· 同时订购多样物品的源程序
· ASP商场源程序
· 一个简单的购物篮源代码
 
· 全唐诗卷四十六
· 韩剧《布拉格恋人》剧情介
· 夜航船[作者:明·张岱]
· 局外人[作者:韩·可爱淘
· 现场流行病学
· 源氏物语[日本:紫式部]
· 红楼梦:120回全本[清
· 武林寓言故事
· 2006高考录取规则
· 首批中国世界名牌产品和2
· 济南美食大全
· 管理三十六计
 
· (出租)中动商场部分及写
· (出租)中动动漫基地&#
· 喜剧学院
· 《善德女王》剧情介绍
· 魔女18号 剧情
· 丑女无敌剧情介绍
· 魔女幼熙剧情介绍
· 龙游天下剧情介绍
· 震撼世界的七日剧情介绍
· 静静的白桦林剧情介绍
· 心情日记—老公今天我想对
· 旗舰剧情介绍
欢迎来到月影社区!如果您觉得这里不错,请推荐给您的朋友们。月影社区:http://wf66.com/

也谈在asp聊天室程序中实现悄悄话功能


查看有无更新版本

关键字:代码乐园 2006-8-28

 

也谈在asp聊天室里实现悄悄话功能
悄悄话功能可以说是聊天室所必备的一个功能项,在用asp编写的聊天室程序中要想实现该功能可以有很多的方法,其大致的思路是创建一个有足够信息的数据结构,该数据结构中要包含足够的信息,比如:说话的人、说话的对象、是否为私聊、房间的名字等等。只要有了足够的辄余信息,就能够轻松的实现诸如悄悄话、房间、表情等等功能了。在高级语言中,例如:c、c++、java都可以很容易的实现新的数据结构的创建,在perl中也可以用关联数组来实现。但在vbscript中实现就不可能了,但我们可以借鉴cgi程序处理字符串的方法,比如:var1=from_who&”,”&to_who&”,”
&chat_value那我们在要用时,只需根据“,”号来分割这个字符串而得到各个部分就行了。对于交谈内容的储存方式,我觉得用application数组比较好,它既避免了频繁的文件读写,又可以很容易的控制大小和进行排序。有人提出用数据库,数据库的结构很好,但在大负荷下其性能堪忧。以下是大致的程序段:
1、 在global.asa中创建application数组
sub application_onstart()
dim pchat_value(50)
application(“gchat_value”)=pchat_value() ‘用来保存谈话的内容
application(“gchat_number”)=0 ‘用来指定该数组当前的大小
……
……
end sub
2、 showpage.asp用来处理谈话以及显示
<%
if request.servervariables("Request_Method")="POST" then
color=request.form("selColor") ‘获取用户所选的颜色
chat=request.form("txtChat") ‘获取用户的谈话内容
who=session("sChater_Name")‘获取讲话者的身份
towho=request.form("selShow")‘获取谈话的对象
action=request.form("selAction")‘获取用户所选的动作
common_or_private="common"‘设置缺省的谈话方式为公聊
chat=who&formexpression(expression)&formaction(action)
&towho&"说:"&formcolor(color)&chat&"</font>"‘这里是形成一句完整的发言象“胡椒狗傻傻地对梦蝶说:怎么了?”。Formexpression、formaction等均为子程序,用来形成动作、表情等等。
if request.form("chkPrivate")="private" then
 common_or_private="private"
 chat=chat&"[私聊]" ‘在显示的最后加上私聊的字样
end if
application.lock
call convert(common_or_private&","&who&","&towho&","&chat&"
")
‘ convert子程序是用来将前面字符串存储到application(“gchat_value”)中,并调整其顺序的。
application.unlock
end if
%>
<html>
<head>
<title> ShowPage </title>
</head>
<body>
<%
for i=0 to application(“gchat_number")-1
 position_one=instr(application(“gchat_value”)(i),",")
 position_two=instr(position_one+1,application(“gchat_value")
(i),",")
 position_three=instr(position_two+1,application(“gchat_value")
(i),",")
‘以上的三句是用来计算出字符串中三个”,”号的位置
if mid(application(“gchat_value")(i),1,position_one-1)="common" or
session("sChater_Name")=mid(“gchat_value")
(i),position_one+1,position_two-position_one-1) or session
("sChater_Name")=mid(“gchat_value")(i),position_two+1,position_three-
position_two-1) then
‘以上这段是说若用户所选的谈话方式是”common”也就是公聊,或者用户当前的名字与字符串中who或者towho相同的话,也就是用户要么是当前这句话的发言者要么是发言的对象,就可以看到这句话了。
response.write mid(application(session("sRoom_Name")&"_Value")
(i),position_three+1)‘这里才是谈话的内容。
 end if
next
%>
3、 convert子程序
<%
sub convert(Message)
dim tmpChat_Value(50)
pChat_Value=application(“gchat_value")
pChat_Number=application(session("gchat_number")
if pChat_Number>=50 then
 pChat_Number=0 ‘清空
end if
for i=0 to pChat_Number
 tmpChat_Value(i)=pChat_Value(i)
next
pChat_Value(0)=Message
for i=0 to pChat_Number
 pChat_Value(i+1)=tmpChat_Value(i)
next
‘用来将当前的发言放到最前面
pChat_Number=pChat_Number+1
application(“gchat_value")=pChat_Value
application(“gchat_number")=pChat_Number
end sub
%>
通过以上的程序我们就能实现私聊的功能了,另外想加入诸如房间等等功能也可以照此方法。我已经测试了这种方法的性能问题,答案是满意的。欢迎大家与我讨论。我的mail:bad_boy2@21cn.com。

也谈在asp聊天室程序中实现悄悄话功能

[ 1 ]
也谈在asp聊天室程序中实现悄悄话功能 num

打印本页 关闭

关于我们版权声明本站导航友情连结作品演示 TOP↑