无刷新聊天室技术实现方法

一、统一名词
文字框:显示聊天内容的框架页面
输入框:输入聊天信息的框架页面
刷新框:自刷新获取最新聊天信息的框架页面,该页面不直接显示出来


二、如何实现
实现无刷新,就是要在当前文字框聊天内容后面不断的添加新的聊天信息。
实现的方式是“添加新信息”,而不是“重新刷新”。

三、技术要点
实现像chat.163.com的无闪烁刷新的聊天室要用到的关键代码:
1.自刷新:
<meta http-equiv="refresh" content="2">
2.向html文件写代码:
<script>
top.frametext.document.write("text");
</script>

四、例子
1.frame.asp页面。最简单的包含三个框架页
文本框frametext.htm;name=frametext
输入框frameinput.asp;
刷新框framerefresh.asp;

2.文本框frametext.htm内容:
最简单的文本内容。略

3.输入框frameinput.asp内容:

4.刷新框framefresh.asp内容(关键)
......
<%
'此处用代码获取最新的聊天信息
'最新信息保存在数组ArrRecord()
'OutNum参数纪录是否有新的聊天纪录出现
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta http-equiv="refresh" content="2"><!--定时刷新获取最新信息-->
.....
<%
if OutNum>0 then '对于用户来讲,如果有新的信息的话,则输出新信息,否则不
输出
response.write "<script language=""javascript"">"
for i = 1 to outnum 
response.write "top.frametext.document.write("""& ArrRecord(i) &""")
;"
next
response.write "</script>"
end if 
%>
.....

五、相关问题
1.自刷新存在的一个问题是焦点定位问题(也就是自动滚屏的问题)。用户在文
本框看到的都是第一次进入chatroom看到的内容的位置,不会自动滚屏到新信息
的位置,必须滚动滚动栏才可以。
在chat.163.com,它通过用户点选“自动滚屏”的方法来实现。其实就是选择“
自动滚屏”,程序将启用控制文本框滚屏的一个js程序,关键部分为:
function ScrollWindow()
{
.....
this.scroll(0, 65000); //将文本框scroll到指定的位置。这里选定(0,65000)
,就是指向最左下角的位置,由于屏幕高度才600不到,所以在一个用户聊天过程
中,几乎永远不可能达到(0,65000)的位置。这样就保证了屏幕永远滚到最底层。

setTimeout('scrollWindow();',200); //循环。否则只滚动一次是没用的
}

2.清屏。如果不清屏,一直开着聊天窗口,文本框文字内容将永无止境的增加。

清屏可以通过reload 文本框页面的方法实现。

转载于:https://www.cnblogs.com/qqq88zz/archive/2011/05/22/2053811.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实验:内置对象使用 一、实验目的 1、掌握各个内置对象的含义; 2、理解并熟练应用session、application对象。 二、实验内容 1、设计聊天室,在聊天室中,需要通过JSP内置对象application来实时保存特定数量的当前聊天信息。 聊天室的设计包括:用户进行登录,选择聊天室,进行聊天,退出聊天室。 在聊天室中,用户只需输入一个用户名就可以进入聊天室,但是如果当前有人在使用该用户名,那么就必须换一个唯一的用户名。 具体要求:  用户登录成功后,程序会要求用户选择聊天室。可以不设置用户自行建立聊天室的功能,而且在聊天中途不能从一个聊天室切换到另一个聊天室。  进入聊天室后,用户可以从用户信息窗口看到该聊天室中所有用户的用户名,也可以在聊天窗口中看到随时更新的聊天信息。用户可以给所有人或某一个聊天用户发送公共的聊天信息,这个聊天内容大家都可以看到。用户也可以给某个用户发送私人的聊天信息,这种信息属于私聊信息,只有发送者和接收者可以看到。此外,聊天窗口还会出现一些系统公告,比如某某上站、某某离开等消息,另外用户还可以自己定义聊天信息和聊天用户信息刷新的时间间隔。  在用户单击“退出”按钮后,页面关闭,同时application和session中保存的信息都将丢失。 三、实验方法 1、用户登录信息使用request对象getParameter()方法得到用户登陆的一些信息; 2、公聊信息可以使用application对象,私聊信息使用session对象。 3、聊天的信息要不断刷新页面,使用户实时看到聊天信息。 4、用户退出时,有两种情况需要考虑:一是用户点击“退出”按钮,二是关闭浏览器,强制退出窗口,可查阅windows感知浏览器关闭的事件的相应方法
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值