关于无闪烁聊天室的问题,好像应该用到页面缓冲技术,比如下面这一段代码,页面内容是"慢慢地"输出的
<?php 
for($i = 1; $i <= 300; $i++ ) print(“ “); 
// 这一句话非常关键,cache的结构使得它的内容只有达到一定的大小才能从浏览器里输出 
// 换言之,如果cache的内容不达到一定的大小,它是不会在程序执行完毕前输出的。经 
// 过测试,我发现这个大小的底限是256个字符长。这意味着cache以后接收的内容都会 
// 源源不断的被发送出去。 
For($j = 1; $j <= 20; $j++) { 
echo $j.”
”; 
flush(); //这一部会使cache新增的内容被挤出去,显示到浏览器上 
sleep(1); //让程序“睡”一秒钟,会让你把效果看得更清楚 

?> 
当然,这段代码不是我写的,我对页面缓冲也不熟悉,我也很想知道到底怎样编写无闪烁的聊天室.
gz

解决方案 »

  1.   

    哈哈,我做过啊,你看看我以前的帖子吧
    在apache的设置上要以模块方式启动php啊,这个是关键啊
    楼上说的很对啊,但是基础就是apache的设置上要以模块方式启动php
      

  2.   

    http协议是不持续连接的啊,所以要做聊天室就要用到一个死循环。来持续连接服务器
      

  3.   

    可以使用SERVER PUSH方式编写,你去PHPUSER上面找找,记得有篇文章的。
    至于页面缓冲:
    for($i = 1; $i <= 300; $i++ ) print(“ “); 
    记得可以在PHP/APACHE里面修改一个参数,去年6-7月的时候那个参数是试验参数,现在不知道怎么样了。具体是那个,自己读一下PHP/apache的配置文件吧。呵呵,我想不起来了。
    提醒一下:如果需要采用SERVERPUSH方式编写CHATROOM,需要注意超时问题:
    三个地方会超时:APACHE/PHP/IE.
    PHP的超时可以通过在代码里面设置最长执行时间来解决:SET_LIMIT_TIME,可能名字有出入。或者在PHP.INI里面设置,这个还是不要了吧,还是动态修改比较的好。
    APACHE的超时,好像在HTTPD.CONF里面可以设置的。
    客户端的超时:呵呵,这个问题的解决方案比较好玩:你如果一段时间没有输出,APACHE就会超时。可以过一会儿输出一个空格(没人说话的时候)。不过记得当时在IE5上面还是不行(??似乎是这样的。)IE5.5就好了。
    哎,IE5.5是比IE5好啊。
      

  4.   

    没闪烁可以做呀,请看小弟的聊天室,php的,没闪烁http://www.wuguan.com/chat/index.php
    觉得好,在我的论坛上留言哦
      

  5.   

    怎么感觉象phpmychat,能提供代码吗??
      

  6.   

    就是我从phpmychat改编的,hack了N多的代码,动作有,还没有拿出来
      

  7.   

    这么多php热心支持者啊,呵呵,好高兴大家关注这篇帖子
    对了,大家不要看我的信誉值不高,其实我每次都给分的,
    我的信誉值是在试csdn的论坛的bug的时候被扣掉了,555,
    对了nethermit:你的聊天室下面那个状态栏在发话的时候还闪的,
    我想不让那个闪,呵呵,是不是很苛刻!
    还有,这么多给方案的朋友,我以前都没有见过,呵呵,大家交个朋友吧
    其实我不是想做聊天室,只是要借鉴他刷新的方法!
    msn:[email protected]
      

  8.   

    老大,状态栏不闪?要我的命,浏览器又没有提供拦截状态栏消息的功能,心有余力不足啊
    想要不刷新,用DHTML代码就搞掂了,简单方便,放一个宽度为0的frame或者iframe,定时刷新,调用DHTML代码,效果很好!
      

  9.   

    拜托nethermit(网络隐士) :可否给我一个您实现的聊天室的实现部分代码?我需要您的思想,我正在作一个时时数据统计的东西,很需要呀!!
    多谢!!!
    [email protected]
      

  10.   

    思想就是Javascript+DHTML,通过调用item.innerHTML="****"来实现,源代码你可以到http://www.phpheaven.net/去看看
      

  11.   

    呵呵,大家交个朋友,我也是刚来,混混的。
    我是http://www.wuguan.com的站长,玩玩php,水平不高,见笑。
    MSN:[email protected]
      

  12.   

    用SERVER PUSH太占服务器资源了吧
    用php结合js很容易啊,而且性能绝对好的
    使用一个大小为1的框架,刷新动作都在这个框架里,而且每次刷新并不是把所有的对话都读出,而只是把客户端还没看到的读出来,具体的请看 www.yueyue.com/chat/
    只做了基本的一些,还没做完呢
    源代码在www.yueyue.com/chat/chat.zip下载
    欢迎请到www.yueyue.com留言哦。
      

  13.   

    要代码的话,去phpuser.com上去看看。
    不过我说的很重要啊
      

  14.   

    为什么我的flush不能用
    WIN98+PHP4。0
      

  15.   

    不过你的聊天室不是我心目中的聊天室。
    我想做类似TENCENT的聊天室。