<?php
ob_end_clean();
for ($i=10; $i>0; $i--)
{
echo $i;
flush();
sleep(1);
}
?><?php
ob_end_clean();
ob_implicit_flush(true);
for ($i=10; $i>0; $i--)
{
echo $i;
sleep(1);
}
?>最近比较空,想学习下php server push玩玩。以上代码是网上copyright来的,说是这么写不会缓存了。
但是我用IE7试了下,第一次打开的话还是缓存了最后才输出显示的啊。
莫非是php.ini还要设置output_buffering?
哪位大哥来解释一下呢
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Cache-Control: no-cache");
header("Pragma: no-cache");
<?php
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Cache-Control: no-cache");
header("Pragma: no-cache");ob_end_clean();//修改部分
for ($i=10; $i>0; $i--)
{
echo $i;
flush();
sleep(1);
}
?>
我试了,还是过了十秒左右才把内容输出的啊
flush();
for ($i=10; $i>0; $i--)
{
echo $i;
flush();
sleep(1);
}
你试下
<?php
ob_start();//开始缓冲数据
for ($i=10; $i>0; $i--)
{
echo $i."<br/>";
ob_end_flush();//停止缓冲数据
flush();//将不在缓冲中的数据发送至浏览器。
sleep(1);
}
?>
server push是指web server如何推送数据到客户端,b/s模式只能利用长连接,轮询来模拟server push,因为你不发送http请求给web server,你就会一定时间内和web server失去连接,谈何server push?
请问这个长连接要怎么实现。我的想法是每过一秒由服务器向浏览器推送一次数据。
http://topic.csdn.net/u/20091223/17/540f7814-5e14-422f-b146-c5868164ec3d.html
我说了大致原理,楼下有哥们写出了代码事例.
其实这个东西没什么用的.除非你服务器够牛.
如果按你说的每秒服务器推送给浏览器,你就相当于用客户端,每秒ajax send http request到服务器.没有客户端(http)请求就没有服务器(http)返回,这是b/s的方式,改变不了.