关于无闪烁聊天室的问题,好像应该用到页面缓冲技术,比如下面这一段代码,页面内容是"慢慢地"输出的
<?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
<?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
在apache的设置上要以模块方式启动php啊,这个是关键啊
楼上说的很对啊,但是基础就是apache的设置上要以模块方式启动php
至于页面缓冲:
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好啊。
觉得好,在我的论坛上留言哦
对了,大家不要看我的信誉值不高,其实我每次都给分的,
我的信誉值是在试csdn的论坛的bug的时候被扣掉了,555,
对了nethermit:你的聊天室下面那个状态栏在发话的时候还闪的,
我想不让那个闪,呵呵,是不是很苛刻!
还有,这么多给方案的朋友,我以前都没有见过,呵呵,大家交个朋友吧
其实我不是想做聊天室,只是要借鉴他刷新的方法!
msn:[email protected]
想要不刷新,用DHTML代码就搞掂了,简单方便,放一个宽度为0的frame或者iframe,定时刷新,调用DHTML代码,效果很好!
多谢!!!
[email protected]
我是http://www.wuguan.com的站长,玩玩php,水平不高,见笑。
MSN:[email protected]
用php结合js很容易啊,而且性能绝对好的
使用一个大小为1的框架,刷新动作都在这个框架里,而且每次刷新并不是把所有的对话都读出,而只是把客户端还没看到的读出来,具体的请看 www.yueyue.com/chat/
只做了基本的一些,还没做完呢
源代码在www.yueyue.com/chat/chat.zip下载
欢迎请到www.yueyue.com留言哦。
不过我说的很重要啊
WIN98+PHP4。0
我想做类似TENCENT的聊天室。