编程解决聊天室刷新问题
编写聊天室程序时,通常,我们有两种把服务器数据传到浏览器的方式。一种是在服务器端有信息后,把信息推到客户端,这种方式使服务器的负载比较重;另一种就是在客户端用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=〉
function scrollon(){
top.main1.scroll(0, 65000);
}
top.main1.document.write(‘〈=request(comment)〉’)
top.main1.document.ite‘〈br〉’)
〈/script〉
用上面的方法在输入聊天内容时,在聊天室显示区中,用户就可以看到内容一行一行向下写,而没有出现屏幕不断刷新的情况。大家只要改变list.asp,就可以从数据库中或者从application对象中得到聊天内容了。只是有可能list.asp需要刷新,但是对于在聊天室中聊天的人来说,聊天内容是一行一行向下移动的,他们是感觉不到屏幕刷新的。