社区
基础编程
帖子详情
谁知道不用刷屏的聊天时怎么做?
okgoodsun
2003-07-31 12:58:10
不用刷屏就是不用让网页不停的自动刷新就能获得服务器端的新的信息,像新浪的认你秀聊天室一样
...全文
70
11
打赏
收藏
谁知道不用刷屏的聊天时怎么做?
不用刷屏就是不用让网页不停的自动刷新就能获得服务器端的新的信息,像新浪的认你秀聊天室一样
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
okgoodsun
2003-08-05
打赏
举报
回复
嗯,这个方法是不错,不过有没有人知道,大型网站的做法,是不是就是用这个方法哪?
xinyaoxp
2003-08-02
打赏
举报
回复
我也要做
外星人oo
2003-07-31
打赏
举报
回复
二、部分关键代码注释:
⑴初始化代码段:Application("chat_hh") 缓冲区中最后一句发言的序号、Session("chat_hh") 就是“设计思路⑶”中提到的 Session 值,用于记录客户端已显示的最后一句发言的序号:
'如果该序号为空,表明程序未初始化
If Application("chat_hh") = "" Then
'定义缓冲区数组,共 30 句发言
'每句发言占用 5 个位置:序号、姓名、发言内容、原始姓名、发言时间
Dim sd(150)
Application.Lock
'将数组赋值给 Application("chat_sd"),即:发言只保留在服务器内存中
Application("chat_sd") = sd
'定义初始序号为 0
Application("chat_hh") = 0
Application.UnLock
End If
'为避免序号过大,每当序号增大到 65535 时就将序号复位为 0
If Application("chat_hh") > 65535 Then
Application.Lock
Application("chat_hh") = 0
Application.UnLock
End If
'客户端用来记录已经显示到哪句发言的 Session("chat_hh")
'其值等于序号减去 12,即:新来的用户可以看到原有的 12 句发言
Session("chat_hh") = Application("chat_hh") - 12
⑵chatfyq.htm 中的 JavaScript 函数:write():
function write(){
//使用 document.open() 打开对话显示区,打开后不关闭,这样就可以不断向里面添加新内容
parent.f1.document.open();
//向对话显示区中写入 HTML 文件头
parent.f1.document.writeln("<html><head><title>对话区</title><meta http-equiv=Content-Type content=\"text/html; charset=gb2312\">");
//写入样式表定义
parent.f1.document.writeln("<style type=text/css>.t{color:AAAAAA;font-size:9pt;}body{font-family:\"宋体\";font-size:10.5pt;line-height:160%}A{text-decoration:none}A:Hover{text-decoration:underline}A:visited{color:blue}</style></head><\Script Language=\"JavaScript1.1\">");
//写入自动滚屏代码
//......(注意:此处省略的代码请参见完整的源程序)
parent.f1.document.writeln("StartUp();</\script>");
parent.f1.document.writeln("<body bgcolor=CDE0FC text=000000>");
parent.f1.document.writeln("<hr size=1>【欢迎光临】红蜻蜓聊天室恭候您的光临。<hr size=1>");
//将 chatt.asp 载入框架顶端的隐藏框架中,执行定时刷新功能
parent.t.location.href="chatt.asp";
}
外星人oo
2003-07-31
打赏
举报
回复
实现方法:
一、本程序只需要 4 个文件即可实现:
⑴chat.asp:聊天室框架文件,负责初始化程序运行环境并随机分配四位数的数字做为用户名,再把页面从上到下分成四部分,顶、底两个框架高度为 0。
⑵chatfyq.htm:发言区,提供输入姓名、发言的文本框,及一个发言按钮和一个自动滚屏的开关(复选框),并定义在客户端执行的 JavaScript:checksays()(对发言进行有效性检测)、cls()(清空对话显示区的内容)、write()(初始化对话显示区,定义页面颜色、文字大小,并放置滚屏代码)、sw(username)(在对话区点击人名时,将人名写到发言框中)、w(un,sa,tn,dt)(将原始数据合成为完整的发言内容,并添加到对话显示区的尾部)。
⑶chatt.asp:此文件位于顶部的隐藏框架(高度为 0)中定时刷新,把新的发言的原始数据使用 <script Language=JavaScript>parent.f2.w("姓名","发言内容","原始姓名","发言时间")</script> 的格式输出到客户端,即可调用 chatfyq.htm 中定义的 w(un,sa,tn,dt) 函数来显示出发言内容。
⑷chatsay.asp:发言提交到此文件进行处理。此文件位于底部的隐藏框架中。将发言加入缓冲区后,立即执行和 chatt.asp 相同的代码段,将发言显示出来。(chatsay.asp 后面的代码和 chatt.asp 是相同的,之所以不在 chatsay.asp 后面使用 Response.Redirect "chatt.asp" 来调用,是为了加快速度,因为重定向方式需要建立两次连接:发言提交是连接一次,重定向时又要再连接一次,效率低。)
外星人oo
2003-07-31
打赏
举报
回复
转转转转转转转
聊天室自做 Follow Me
2002-10-21 16:32:20 阅读273次
聊天室自做 Follow Me
上网而没去过聊天室的人,可谓是凤毛麟角,下面,我们就自己来做个最简单的聊天室。
目前聊天室显示对话的方式一般有两种。一是每隔 x 秒就把整个对话显示区刷新一遍,此方的弊端显而易见:数据传输量大且屏幕有闪烁感;其二是有新的发言时,才将该内容传递给客户端,并添加在原有对话的尾部,此法数据传输量就比较小且屏幕是平滑滚动,视觉效果好。第一种方法的实现已经有很多资料介绍,因此本文将介绍第二种刷新方式。
设计思路:
⑴服务器端只保留最新的30条发言作为缓冲区,新的发言内容将最旧的发言挤出。
⑵每句发言都分配一个递增的序号。客户端最后出现的发言的序号记录在 Session 中。
⑶利用隐藏框架进行刷新,刷新时,将 Session 值与缓冲区的每句发言的序号进行比较,如果序号大于 Session 值说明该发言是新的,就将该发言的数据取出,并将该发言的序号值赋给 Session。
⑷对话显示区使用 document.open() 打开后,就不再关闭,当隐藏框架刷新时有新数据取出并传到客户端时,将这些原始数据格式化为要显示的内容(此工作可以在服务器端执行,但为减轻服务器的负担,就将对话的合成工作移交给客户),然后调用 document.writeln 方法将发言的内容写到对话显示区的尾部。
⑸在对话显示区中放置一段自动滚屏的代码,使屏幕自动向下滚动,并可通过发言区的复选框来选择是否自动滚屏。
okgoodsun
2003-07-31
打赏
举报
回复
to cpio:啊!你说自己写个浏览器?不会吧!不过我的确想在浏览器中做一个socket连接的控减
nielisheng
2003-07-31
打赏
举报
回复
1 frame a,b
a input, b display
2 a control b
cpio
2003-07-31
打赏
举报
回复
这好像不好办
自己写个浏览器,简单点就行
然后可以用socket编程来搞
「已注销」
2003-07-31
打赏
举报
回复
这是javascript的事,跟php没关系~!
okgoodsun
2003-07-31
打赏
举报
回复
不接受服务器信息,document.write what?????
seabell
2003-07-31
打赏
举报
回复
用document.write
易语言如何
做
刷屏
软件
在本篇文章中小编给大家分享的是关于易语言如何
做
刷屏
软件的相关步骤以及知识点,需要的朋友们可以参考下。
QQ
刷屏
好友屏蔽如何
做
.docx
QQ
刷屏
好友屏蔽如何
做
.docx
AJax无刷新大型
聊天
室
受用!无刷新大型
聊天
室,保准您想要得到的
iChat 1.61免费版
iChat 1.61免费版 (2x25 最高在线50人)
(2x25 表示支持2个房间,每个房间最多25个用户)
免费版功能限制说明(与正式版比较而言)
(1) 只允许开设2个
聊天
室房间
(2) 每个房间最多只允许25人同
时
在线
(3) 限制使用“封IP”“点哑穴”“警告”等管理功能
(4) 限制使用“发炸弹”等高级功能
(5) 免费版不限制发言速度,没有反
刷屏
机制
(6) 每条系统信息后面会显示ICHAT广告信息
(7) 使用期限不能超过2001年12月31日
1.61免费版与1.53免费版比较增加了如下功能
(1) 增加了ADMIN.INI文件,改进了数十项新功能
(2) 不再限制模板文件的编辑,允许用户对
聊天
室界面
做
完整的改动
(3) 支持etchat用户数据文件,支持所有ODBC接口的数据库用户认证
整人软件让
聊天
好友输入你想让他说的话!不说他的电脑自动关机... 121
整人软件让
聊天
好友输入你想让他说的话!不说他的电脑自动关机...
基础编程
21,890
社区成员
140,342
社区内容
发帖
与我相关
我的任务
基础编程
从PHP安装配置,PHP入门,PHP基础到PHP应用
复制链接
扫一扫
分享
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章