2011-03-02 43 views

回答

2

是的。 你可以使用PHP的冲洗机制。

例如:

<? 
    ob_implicit_flush(true); 
    foreach($array as $key => $value) 
{ 
    echo $value; 

    sleep(1); 
} 
    ?> 
+0

你能提供一个例子吗? – Nazariy 2011-03-02 18:32:12

+0

我上面加了一个例子 – Neal 2011-03-02 18:37:44

+0

可能工作。但是这不会浪费很多带宽来填充空间吗? – Dan 2011-03-02 18:39:20

1

,由于Web服务器高速缓存结果是不是真的有可能。当输出缓存填满并发送新的http数据包时,客户端可能会获得新数据,但这样做并不是一种好的做法,因为php脚本也会超时,所以这种方法的结果可能不明确。

编辑:你可以使用php的ob_flush来清除缓存,如ob_flush();。但是,这仍然会导致脚本可能超时的问题,因此您无法在很长一段时间内继续这样做。

一个更好的解决方案是定期进行AJAX调用或使用WebSocket与服务器保持持久连接,以获取新数据。

编辑2:对于WebSockets,它不是那么简单的张贴在这里。此外,它仅适用于HTTP5,Chrome 8支持它,可能还包括Firefox 4和Safari 5。这里是一个PHP使用Websockets的教程:WebSockets with PHP

+0

你可以提供一个Web套接字的例子吗? – Nazariy 2011-03-02 18:39:33

+0

从来没有用WebSockets自己实现过任何解决方案,但是那里有一些教程和框架(也是PHP插件),可以很容易地使用它们。这个想法是,他们提供持久连接,所以服务器可能只是发送一个WebSocket数据包,并立即通知浏览器。 – Dan 2011-03-02 18:43:41

相关问题