仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2875|回复: 20
打印 上一主题 下一主题

[学习教程] ASP网页设计聊天室建立详解四

[复制链接]
若天明 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-2-3 23:31:50 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
使用filesystemobject,可以对服务器上的文件进行操作,浏览、复制、移动、删除等。有ado的支持,asp对数据库的操作非常得心应手。你甚至可以像使用本地数据库那样,管理远程主机上的数据库,对表格、记录进行各种操作。   当咱们把下面的法式保留在具有履行权限的办事器目次中,在客户端用阅读器翻开时,咱们见到了平凡聊天室一样的用户上岸界面。咱们因而输出用户名及暗码,按发送时,咱们所输出的材料便会黑暗存入用户数据库中。接着便呈现了讲话筐,咱们试着输出一句话,点讲话按钮,这时候,咱们的讲话便会带着咱们所输出的话,咱们所选择的措辞对象,咱们所选择的色彩和脸色写入讲话数据库中。然而,讲话以后,咱们并没有发明任何语句呈现在屏幕上,那是由于:这个法式自己担任的地道是把数据库写入数据库,他不会向客户端前往任何器材,除非你的输出是毛病的。
  聊天室还需求一个主要的法式,这个法式主动的、不休的读取数据库中最新的纪录,把他显示在一切用户的阅读器上。这个法式与其余任何法式没有任何干系,他的独一的义务是读取讲话数据库中的数据,把他显示出来,他不论客户是不是输出讲话,不论客户对谁措辞,不论客户选择甚么脸色与色彩。当这个聊天室即便没有一团体措辞,这个法式也是不休的读取这个数据库,每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
只要你想学,就没什么优缺点,上面那位大哥已经把网上的评论说了,但我认为想学哪个都一样,不然它就不可能在当今时代数字艺术方面存活到今天
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-6-18 22:07

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表