日期:2013-01-31  浏览次数:20952 次

编程解决聊天室刷新问题
  编写聊天室程序时,通常,我们有两种把服务器数据传到浏览器的方式。一种是在服务器端有信息后,把信息推到客户端,这种方式使服务器的负载比较重;另一种就是在客户端用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需要刷新,但是对于在聊天室中聊天的人来说,聊天内容是一行一行向下移动的,他们是感觉不到屏幕刷新的。