-
您的位置:首页 → 精文荟萃 → 软件资讯 → 聊天室建设详解四
聊天室建设详解四
时间:2004/10/7 19:17:00来源:本站整理作者:蓝点我要评论(0)
-
当我们把上面的程序保存在具有执行权限的服务器目录中,在客户端用浏览器打开时,我们见到了平常聊天室一样的用户登陆界面。我们于是输入用户名及密码,按发送时,我们所输入的资料便会暗中存入用户数据库中。接着便出现了发言筐,我们试着输入一句话,点发言按钮,这时,我们的发言便会带着我们所输入的话,我们所选择的说话对象,我们所选择的颜色以及表情写入发言数据库中。但是,发言之后,我们并没有发现任何语句出现在屏幕上,那是因为:这个程序本身负责的纯粹是把数据库写入数据库,他不会向客户端返回任何东西,除非你的输入是错误的。
聊天室还需要一个重要的程序,这个程序自动的、不断的读取数据库中最新的记录,把他显示在所有用户的浏览器上。这个程序与别的任何程序没有任何关系,他的唯一的任务是读取发言数据库中的数据,把他显示出来,他不管客户是否输入发言,不管客户对谁说话,不管客户选择什么表情与颜色。当这个聊天室即使没有一个人说话,这个程序也是不断的读取这个数据库,每N秒钟刷新一次,这个N是由编程者决定的。
由此,我们可知:登陆_发言部分与自动刷新部分是没有任何联系的。
在分析范例程序之前,我们最好来分析一下几点:
1、在我们往数据库中写入数据库时,记录是不断往数据表的尾部增加的,因此,我们必须知道哪一句话是最新的,哪一句话在前面说的,我们知道,在MSACCESS数据库表中,有一个自动编号的字段ID,这个字段非常有用,ID最大的记录是最新输入的记录,每添加一个记录,ID自动加1,由此,我们可通过ID来对用户的话进行从新到旧的、一句一句的排序输出。我们知道,在 SQL 的SELECT 语中有一个 ORDER BY的子句,他按一列或多列对结果进行升序或降序排序。如果我们不用ORDER BY 字句,那SELECT 默认为升序输出,那我们会看到,最旧的发言总是在前面显示,而最新的语句则跑到最后面去,那当然不是我们所希望的。
2、再一点,那就是用户不断的往数据库中输入语句,数据库将会变得越来越大,而我们为了速度,我们不能也不必要读取全部的记录把所有的话显示出来,我们只需要看到最新的N句话比如最新的50句话就够了。如何实现上面两点,且来看看范例程序:
我们来分析一下下面的程序:chatview.asp
<%Response.Buffer=true%> 设置缓存为真
<% 指定数据库
Set Conn=Server.CreateObject("ADODB.Connection")
Connstr="DBQ="+server.mappath("chat.mdb")+";DRIVER={Microsoft Access Driver (*.mdb)};"
Conn.Open connstr
%>
<%
sql="SELECT * FROM 聊天表 ORDER BY ID DESC" 降序输出查询结果
Set rootRs=conn.Execute(sql)
set name=rootrs("姓名") 从数据库中获取姓名、说话、颜色、表情等
set word=rootrs("说话")
set colo=rootrs("颜色")
set face=rootrs("表情")
set who=rootrs("说话对象")
%>
<%i=0%> 定义输出记录数 i
<%Do While Not rootRs.Eof and i<=50%> 显示50句话,包括姓名、话语、颜色、表情等
<%i=i+1%>
|
<%=name%><%=face%><%=who%>说:
<%=word%>
|
|
<%rootRs.MoveNext
Loop%>
每四秒钟刷新一次
请把此程序存为chatview.asp
相关阅读
Windows错误代码大全 Windows错误代码查询激活windows有什么用Mac QQ和Windows QQ聊天记录怎么合并 Mac QQ和Windows QQ聊天记录Windows 10自动更新怎么关闭 如何关闭Windows 10自动更新windows 10 rs4快速预览版17017下载错误问题Win10秋季创意者更新16291更新了什么 win10 16291更新内容windows10秋季创意者更新时间 windows10秋季创意者更新内容kb3150513补丁更新了什么 Windows 10补丁kb3150513是什么
-
热门文章
360快剪辑怎么使用 36金山词霸如何屏幕取词百度收购PPS已敲定!3
最新文章
微信3.6.0测试版更新了微信支付漏洞会造成哪
360快剪辑怎么使用 360快剪辑软件使用方法介酷骑单车是什么 酷骑单车有什么用Apple pay与支付宝有什么区别 Apple pay与贝贝特卖是正品吗 贝贝特卖网可靠吗
人气排行
xp系统停止服务怎么办?xp系统升级win7系统方电脑闹钟怎么设置 win7电脑闹钟怎么设置office2013安装教程图解:手把手教你安装与qq影音闪退怎么办 QQ影音闪退解决方法VeryCD镜像网站逐个数,电驴资料库全集同步推是什么?同步推使用方法介绍QQ2012什么时候出 最新版下载EDiary——一款好用的电子日记本
查看所有0条评论>>