明辉手游网中心:是一个免费提供流行视频软件教程、在线学习分享的学习平台!

编程处理聊天室刷新问题(来源:赛迪网—中国计算机报)

[摘要]编程解决聊天室刷新问题 编写聊天室程序时,通常,我们有两种把服务器数据传到浏览器的方式。一种是在服务器端有信息后,把信息推到客户端,这种方式使服务器的负载比较重;另一种就是在客户端用refresh命令进行刷新,大多数的聊天室都采用这种方式,这就使得我们在浏览器上看到屏幕在不断地刷新,非常影响浏览,...

编程解决聊天室刷新问题
编写聊天室程序时,通常,我们有两种把服务器数据传到浏览器的方式。一种是在服务器端有信息后,把信息推到客户端,这种方式使服务器的负载比较重;另一种就是在客户端用refresh命令进行刷新,大多数的聊天室都采用这种方式,这就使得我们在浏览器上看到屏幕在不断地刷新,非常影响浏览,在网速慢的时候这种情况更为严重。

有没有好的办法能够解决这个问题呢?答案是肯定的。下面笔者就给大家介绍一种用javascript来解决这种问题的方法。本方法虽然不是最好,但简单易行,感兴趣的读者不妨一试。

首先,我们把网页分成三帧。上面一帧为main.htm,用来显示聊天的内容;下面一帧为bottom.htm,用来输入聊天内容。然后,再增加一个隐藏帧list.asp,这个帧的作用就是使得输入的信息能够在main.htm帧中显示出来。以下是聊天室的源程序。

frame.htm源程序如下:

〈html〉

〈head〉

〈title〉asp酷聊天室〈/title〉

〈meta http-equiv="content-type" content="text/html; arset=gb2312"〉

〈/head〉

〈frameset rows="0,403,92" cols="*"〉

〈frame src="list.asp" name="list"〉

〈frame src="main.htm" name="main1"〉

〈frame src="bottom.htm"〉

〈/frameset〉

〈noframes〉

〈body bgcolor="#ffffff"〉

〈/body〉〈/noframes〉

〈/html〉

main.htm源程序如下:

〈html〉

〈head〉

〈title〉聊天内容显示区〈/title〉

〈meta http-equiv="content-type" content="text/html; charset=gb2312"〉

〈/head〉

〈body bgcolor="#ffffff"〉

〈/body〉

〈/html〉

bottom.htm源程序如下:

〈html〉

〈head〉

〈title〉聊天内容录入区〈/title〉

〈meta http-equiv="content-type" content="text/html;charset=gb2312"〉 〈/head〉

〈body bgcolor="#ffffff"〉

〈form name="form1" method="post" action="list.asp" target="list"〉

〈div align="center"〉

〈input type="text" name="comment"〉

〈input type="submit" name="submit" value="写写看"〉

〈/div〉

〈/form〉

〈/body〉

〈/html〉

list.asp源程序如下:

〈script language="javascript"〉

function scrollon(){

top.main1.scroll(0, 65000);

}

top.main1.document.write(‘〈=request("comment")〉’)

top.main1.document.ite‘〈br〉’)

〈/script〉

用上面的方法在输入聊天内容时,在聊天室显示区中,用户就可以看到内容一行一行向下写,而没有出现屏幕不断刷新的情况。大家只要改变list.asp,就可以从数据库中或者从application对象中得到聊天内容了。只是有可能list.asp需要刷新,但是对于在聊天室中聊天的人来说,聊天内容是一行一行向下移动的,他们是感觉不到屏幕刷新的。