聊天室建设详解四

a会飞的yu

a会飞的yu

2016-01-29 17:10

聊天室建设详解四,聊天室建设详解四
      当我们把上面的程序保存在具有执行权限的服务器目录中,在客户端用浏览器打开时,我们见到了平常聊天室一样的用户登陆界面。我们于是输入用户名及密码,按发送时,我们所输入的资料便会暗中存入用户数据库中。接着便出现了发言筐,我们试着输入一句话,点发言按钮,这时,我们的发言便会带着我们所输入的话,我们所选择的说话对象,我们所选择的颜色以及表情写入发言数据库中。但是,发言之后,我们并没有发现任何语句出现在屏幕上,那是因为:这个程序本身负责的纯粹是把数据库写入数据库,他不会向客户端返回任何东西,除非你的输入是错误的。
  聊天室还需要一个重要的程序,这个程序自动的、不断的读取数据库中最新的记录,把他显示在所有用户的浏览器上。这个程序与别的任何程序没有任何关系,他的唯一的任务是读取发言数据库中的数据,把他显示出来,他不管客户是否输入发言,不管客户对谁说话,不管客户选择什么表情与颜色。当这个聊天室即使没有一个人说话,这个程序也是不断的读取这个数据库,每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%
<table border='0' cellpadding='0' cellspacing='0' width='85%'<tr
<td width='100%' bgcolor='#C0C0C0'</td</tr<tr<td width='100%'
<font color='#0000FF'<strong<%=name%</font</strong<font color='#008080'<%=face%</font<font color='#0000FF'<strong<%=who%说:
</font</strong<font color='<%=colo%'<%=word%
</font</td</tr<tr
<td width='100%' bgcolor='#C0C0C0'</td</tr</table<br
<%rootRs.MoveNext
Loop%

<meta http-equiv="refresh" content="4"           每四秒钟刷新一次


请把此程序存为chatview.asp
 
展开更多 50%)
分享

猜你喜欢

聊天室建设详解四

ASP
聊天室建设详解四

聊天室建设详解五

ASP
聊天室建设详解五

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

聊天室建设详解三

ASP
聊天室建设详解三

聊天室建设详解二

ASP
聊天室建设详解二

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

聊天室建设详解一

ASP
聊天室建设详解一

聊天室实现私聊(四)

ASP
聊天室实现私聊(四)

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

以管理员身份打开Vista命令行窗口

以管理员身份打开Vista命令行窗口

Vista中非索引位置启用内容搜索

Vista中非索引位置启用内容搜索
下拉加载更多内容 ↓