社区
ASP
帖子详情
请教几个编写聊天室时遇到的问题?
l_cheng
2002-02-17 03:27:29
我在编写一个聊天室,教师列表部分和聊天记录部分的两个页面设为5秒刷新一次,但这导致浏览器页面频繁滚动,界面十分不友好。我看过网易的聊天室,他用户列表页面的刷新并不是定时的,而是在有新用户加入时才刷新的;另外,网易的聊天室的聊天记录页面的刷新很奇怪,它好像是将全部信息向上滚动一行,然后再添加新的信息,请问各位,这些如何实现???
...全文
184
7
打赏
收藏
请教几个编写聊天室时遇到的问题?
我在编写一个聊天室,教师列表部分和聊天记录部分的两个页面设为5秒刷新一次,但这导致浏览器页面频繁滚动,界面十分不友好。我看过网易的聊天室,他用户列表页面的刷新并不是定时的,而是在有新用户加入时才刷新的;另外,网易的聊天室的聊天记录页面的刷新很奇怪,它好像是将全部信息向上滚动一行,然后再添加新的信息,请问各位,这些如何实现???
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
ping16
2002-02-22
打赏
举报
回复
无刷新技术聊天室用纯asp不太容易实现,网易的并不是采用刷新而是push,即当有新消息被服务端接收到后,服务端并不须要的客户端的请求,而是以push的方式发送给客户端。
听起来可能难以实现,实际上其中只有一个关键问题。它是如何阻塞当前执行的asp。网易的那张显示消息的网页是永远不会下载完的,它始终保持正在打开状态。我没有看过它的原码,我猜想其中包含一个无限循环,用它来读取一个消息队列(被发送到服务端的新消息都被放入此队列),然后push给客户端。当然如果你直接在asp中使用无限循环肯定会死机,这就是为什么要阻塞当前执行的asp的原因。关于如何自动滚动到尾部,你可以看一下网易的js文件,它做一个函数来实现自己找找吧。
jmcity
2002-02-18
打赏
举报
回复
有用户进入聊天室刷新时可以用js来触发
没有用户进入时,在线列表可以不刷新,
当有用户时入,马上触发刷新在线的名单的动作即可解决!
使用数据也有一个坏处,即人多时,如果有100个人聊天,都在读数据库,那可不是我们希望看到的!
我还是认为将发言内容做成一个数组
然后将这个数组用application来保存,这样只是使用了服务器的内存,而没有形成对服务器硬盘的访问!还是效率要高好多,当然数组存多少对话,和数组定为多大,自己要好好把握,存得太多,内存开销过大,存得太少,又容易丢话
l_cheng
2002-02-18
打赏
举报
回复
请问,如何在页面刷新时,页面自动滚动到尾部,显示最新的内容
ChinaOk
2002-02-17
打赏
举报
回复
你可以下了几个聊天室代码看看。
这要求你要有点js的功底才能搞的好点。
愿和全人类共扯一个蛋
2002-02-17
打赏
举报
回复
关于第一个问题我有点办法,就是每隔多长时间检查一次有无新用户登录,有的话刷新,没有就不刷新
希偌
2002-02-17
打赏
举报
回复
数据库聊天室的“无刷新”技术要点
聊天室是网络实时交互的最常应用之一。聊天室的制作要解决好以下问题。
1、谁在发言
2、讲给谁听
3、讲些什么
与ICQ不同,ICQ
的数据流是一对一的关系。只要解决好上面三个问题就可以实现。聊天室由于存在一对多、多对一、一对一等多种数据关系,因此就有一个数据的存放问题。
ASP 聊天室的数据存放一般有三种形式: 一是用全局变量Application
和Session对象。这种形式速度快效果好,但系统资源消耗太大。二是应用读写数据库实现。这种方法简明但服务器频繁读写数据据库很累。第三种可用读写TXT文件完成。适合简单的聊天室。三种方法都有一个共性的特点:客户端要获取新的聊天数据,必需刷新调用。刷新时间过短,屏幕晃动厉害,刷新时间过长,等待时间太多感速度太慢。于是人们分别用触发刷新与自动刷新结合从感觉上得到改善。二是利用隐藏帧进行刷新再把内容加在显示帧上,形成所谓“无刷新”聊天室,解决了屏幕晃动问题。
“无刷新”聊天室要解决的技术问题有:
一、如何判断新数据
二、新数据的提取
三、如何让客户断在有新数据时能及时更新
以上一、二用Application很容易实现,但第三个问题不容易解决。用数据库做聊天室,第三个问题相对容易,但第一、二个问题要费点精神。笔者用数据库做的聊天室采用了“无刷新”技术,没有用一个Application,主要的技术要点是:
在数据库中另设置只有一个字段的表,字段名:BS,用户每次登陆读一次BS 的值。 设一个Session别作为每一个具体用户的当前发言次数,初始为
BS-1。用户每发言一次使 BS + 1(Session 值不此时不加,形成Session与BS差)在隐性刷新帧上判断: 如果 BS 与
Session 有差,则读数据库将新数据读出并在显示帧显示。Session+1
表示新数据已经读出,不再重读。反复此过程,直到所有新数据据读出并显示。此时 BS = Session上述方法解决了上面讲的
判断新数据和新数据的提取的问题。由于新数据本身没有任何变化,依然原样存放在数据库中,客户端无论时间差多大,只要自身的Session与BS有差,一当读库,差多少多多少条记录,解决了客户端刷新差异带来的不显示问题。
以上方法,当然也可以用Application来设置 BS。还有一但BS 到了一定值时(看同时发言人数而定),要重置为 1 。以上方法在 IIS
4 平台,局域网、因特网通过。
neweb
2002-02-17
打赏
举报
回复
网易好象有专门的聊天服务器,一般的ASP做不到的,
c++项目——
聊天室
——第一节
c++项目——
聊天室
——第一节概述
聊天室
初步 概述 本节内容是在 如何学习编程 之后进一步由理论结合实践去验证和加深该学习思想,为了方便起见,不会再过多的阐述先验知识,因此若是在阅读过程中出现因先验知识不足而导致的难以理解的情况,请自行学习相关的先验知识。 因为c++这门语言学习起来总有一定的难度,除了语言本身的原因以外,由于学的人相对较
基于 Vue 开发一个 多人
聊天室
(万字长文) - 从 0 到 1 篇
前言 在上个月初,接到一个需求,要开发一个 聊天通讯 模块 并且 集成到 项目中的多个 入口,实现业务数据的记录追踪. 接到需求后,还挺开心,这是我第一次 搞 通讯 类的需求,之前一直是 B 端 的业务需求,不过现在也是在做这个方向,感觉 B 端 方向 挺有意思,管理着项目的整个项目上游和下游,然后服务于 内部人员 和 外部人员 使用,感觉挺自豪的。 下面就就跟着我来看看 如何 开发一个 聊天通讯 服务吧 ! (主要站在前端的角度来讲如何开发设计 ) 技术栈 Vue 2.x Websoket V
python TCP实现聊天程序
这是我Python课的课程设计,按理说这种聊天程序应该用UDP的,但是我的课程设计题目是TCP的,所以就用TCP写了 由于是课程设计,所以写的也没有那么复杂,后面有
时
间了再添加新功能,如果有什么建议可以联系我(邮箱cytcyt123@163.com),第一次发博客,请各位大神多多指教,有什么需要改进(包括但不限于程序,别的
问题
也可以指出来,我会虚心
请教
的),主要实现了多个客户端之间能互发消息,而...
ASP+ACCESS网上
聊天室
毕业设计(源代码+论文+开题报告+任务书+答辩PPT)
网络教学平台是建立在网络上的一种户动平台,网络教学已经是流行于各大校园内的一种新型教学方式,
聊天室
的制作正是这种教学方式户动的一种最准确的体现。它的出现不仅丰富了网络的内容,使制作出来的网页不再只局限于单一的静态界面,更加强了人机户动,也实现了人与人通过网络交流的目的。在基于网络的教学环境下,做到使学生最大限度地发挥学习者的主动性、积极性,既可以进行个别化教学,以可以进行协作型教学(通过各种协作式教学策略的运用而实现),还可以将“个别化”与“协作型”二者结合起来,形成一种全新的教学模式。
Linux系统开发|QT制作聊天软件实验报告
设计一款携带多种功能的聊天软件,不仅可以聊天,也能修改字体,计
时
,绘画等等。
ASP
28,406
社区成员
356,946
社区内容
发帖
与我相关
我的任务
ASP
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
复制链接
扫一扫
分享
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章