asp聊天室的程序如何实现有人说话时其他人的网页自动刷新

zhengsimon 2000-07-24 01:14:00
...全文
182 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Tyro 2000-07-25
  • 打赏
  • 举报
回复
嗯!用服务器push技术可以解决这个问题
虎叔 2000-07-25
  • 打赏
  • 举报
回复
可以做一个服务端的类似WebServer的应用程序加以控制,比如网易的聊天室!
subzero 2000-07-24
  • 打赏
  • 举报
回复
这个是服务器PUSH技术
还在研究呢
xuming 2000-07-24
  • 打赏
  • 举报
回复
Http协议是基于请求/响应的,服务器不可能把得到的信息(某人的发言)主动传给其它浏览器。所以还是要在客户的页面做定时刷新。如:
<meta HTTP-EQUIV="REFRESH" CONTENT="10">
可以用remote scripting来维持页面。
最近利用闲暇间,作了个简单的聊天室,该聊天室使用 prototype.js (v1.4) 类库,主要应用Ajax技术、Application变量,做到小型架构,页面无刷新,[b]无数据库[/b],能查看在线用户等特点。

刚开始打算用access小型数据库,但考虑到多人在线,这种轻量级的数据库承受能力将不能胜任存储任务,MSsql又不熟悉,我的空间也不支持,所以只往小型方向开发。所有聊天数据都存入服务器变量中,客户端与服务器的交互采用json的数据结构,效率还是相当高的。

写js也有一段间了,发现再用vbscript写asp,有点不适应vb的语法,因此服务端application的全部使用Jscript操作。(js真tmd的自由!自由到连个像样子的IDE都没有-_-)。

当前已知的bug:
如果用户在任务管理器里终止ie进程,那么在线用户列表里将不能删除该用户名。(因为body元素的onunload没法运行-_-)

可以改进的地方:
1、客户端每隔n毫秒取一次数据,但当前返回的数据是整个application变量,比较长,可以只取最新的消息。这样可以改进数据交换的效率。
2、因为application不能太大,否则服务器必定挂掉,所以只好设置长度限制,超过n条记录后自动删除之前的消息,自动维护application的长度,听起来似乎是个好消息,但客户端也只能保存n条记录-_-,完全可以把所有记录在客户端缓存嘛。

28,391

社区成员

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

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