聊天室的显示问题,高分的哟!

snowhust 2000-07-19 11:13:00
偶最近做了聊天室,是利用每4秒钟从数据库中读取最近50条信息然后写到屏幕上去
但是这样当没有人聊天室也会4秒钟刷新,导致屏幕频繁闪烁,我看了网易和南昌热线的聊天室,他们是当用户有新的数据写入时,就只将新数据写在屏幕上,其他不动,屏幕很稳定,有哪位大侠知道怎么做?
...全文
222 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
subzero 2000-07-20
  • 打赏
  • 举报
回复
JGTM2000说的对
用一个隐藏帧来刷新聊天数据
然后把新的数据用客户端脚本写入显示页
西陆的聊天室是一个好例子
ring 2000-07-20
  • 打赏
  • 举报
回复
用隐藏帧吧
这样子它刷的时候就看不到闪了,把内容用document.write() 或 body.innerHTML+= 写入另外的帧

网易用的方法不是你用的方法,它是建立了一个永久性的连接,而不是http那样下载完一页就close connection,用到了socket编程
TopHead 2000-07-19
  • 打赏
  • 举报
回复
King,能不能详细说一些?最好有一个程序片断:)
King 2000-07-19
  • 打赏
  • 举报
回复
我刚做完,最主要是:
Connection: Keep-Alive

Content-type:multipart/x-mixed-replace
JGTM2000 2000-07-19
  • 打赏
  • 举报
回复
我见过一种方法,把Server.ScriptTimeout的超时值设定的奇大,然后ASP利用循环来不停地向客户端写入最新的聊天记录。这种做法被很多聊天室采用,但是按照Windows DNA的理论,它严重的限制了服务器的可伸缩性,并且比较大的占用系统的各种开销。

我曾经用过一种更好的方法(虽然对浏览器有一定的要求),即利用隐藏帧(或者IFRAME)从服务器ASP获取动态脚本更新主聊天页面。这种做法不仅聊天毫无闪烁,连名单的刷新都不会重新加载页面。大致的方法如下:

聊天页面:
<DIV ID='chatlines'></DIV>
<IFRAME src='getcmd.asp' HEIGHT='0' WIDTH='0'>

getcmd.asp:
newline = businessObj.GetNewLines(UserID);
Response.Write "<script>"
Response.Write "chatlines.InsertAdjacentHTML('beforeend','" & newline & "')"
Response.Write "</script>"

意思就是这样,getcmd.asp生成用于以对象模型形式更新聊天页面的客户端脚本代码,该脚本可以很复杂以支持各种各样的主界面元素更新工作,比如只更新在线人数。
qiuhao 2000-07-19
  • 打赏
  • 举报
回复
shi
【资源说明】 该项目是个人毕设项目源码,评审分达到95分,都经过严格调试,确保可以运行!放心下载使用。 该项目资源主要针对计算机、自动化等相关专业的学生或从业者下载使用,也可作为期末课程设计、课程大作业、毕业设计等。 具有较高的学习借鉴价值!基础能力强的可以在此基础上修改调整,以实现类似其他功能。 asp.net校园信息论坛交流照片分享网站毕业源码案例设计 ## 程序开发软件: Visual Studio 2010以上 数据库:sqlserver2005以上,大概11个表 根据系统的需求,该系统应该具有五个功能模块: 用户注册模块,新闻发布模块,聊天室模块,个人主页,留言本模块。各模块对应的基本功能。 ## 总体模块如下: 本人主要负责新闻发布模块与留言板模块的主要开发设计任务。其中管理员模块与小组另一成员共同设计开发。 ### 用户注册模块: (1)用户登录,验证用户输入的帐号和密码,判断是否为合法用户。 (2)用户注册,成为本站会员。 (3)找回密码,当用户丢失或遗忘其密码时,允许该用户通过注册时提供的信息找回密码。 ### 新闻发布模块: (1)新闻发布,添加一篇新的文章。 (2)新闻编辑,管理已有新闻,包括添加和删除等功能。 (3)新闻浏览,用户可以浏览自己感兴趣的新闻。 ### 聊天室模块: (1)显示聊天信息,通过定时刷新页而来动态的显示用户最新的聊天内容。 (2)在线用户列表,显示在线用户的列表并定时刷新。 个人主页模块: (1)上传照片。 (2)写日志。 (3)留言。 ### 留言本模块: (1)留言浏览,浏览所有留言信息及管理员回复的信息。 (2)发布留言,发布新的留言信息。 (3)留言回复,能够回复访问者发布的留言信息。 (4)删除留言,管理员删除不适合本网站的留言信息。 ### 管理员模块: (1)用户注册、登录权限。 (2)新闻与留言板的更新。 (3)数据库的运行维护。 ## 实体ER属性如下: 学生: 用户名,登录密码,姓名,性别,出生日期,用户照片,联系电话,邮箱,家庭地址,注册时间 教师: 教师编号,登录密码,姓名,性别,出生日期,教师照片,联系电话,邮箱 照片: 照片id,照片分类,照片名称,照片文件,发布用户,发布时间 照片分类: 照片分类id,照片分类名称 帖子日志: 日志id,日志分类,标题,日志内容,发布用户,发布时间 日志分类: 日志分类id,日志分类名称 评论: 评论id,被评日志,评论内容,评论用户,评论时间 留言: 留言id,留言标题,留言内容,提问文件,留言人,留言时间,老师回复,回复时间 网站新闻: 新闻id,标题,新闻内容,发布时间 友情链接: 记录id,网站名称,网站Logo,网站地址

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧