Javascript Php循环不在浏览器上更新
这是我的一个问题: 加载循环时如何在浏览器(chrome、firefox)上更新页面,例如:Javascript Php循环不在浏览器上更新,javascript,php,loops,Javascript,Php,Loops,这是我的一个问题: 加载循环时如何在浏览器(chrome、firefox)上更新页面,例如: <?php $var = 0; while($var != 10){ echo $var; $var++; sleep(1); } ?> 页面不更新,只有在php脚本执行完成后,有什么可以帮我的吗?谢谢。您可以这样做: <?php if (ob_get_level() == 0) ob_start(); f
<?php
$var = 0;
while($var != 10){
echo $var;
$var++;
sleep(1);
}
?>
页面不更新,只有在php脚本执行完成后,有什么可以帮我的吗?谢谢。您可以这样做:
<?php
if (ob_get_level() == 0) ob_start();
for ($var = 0; $var <= 10; $var++) {
echo $var;
ob_flush();
flush(); // echo output buffer to client
sleep(1);
}
ob_end_flush();
?>
zlib.output_compression = Off
或者尝试在代码中禁用它(如果允许):
这基本上是不可能的 PHP使用自己的输出缓冲(
php://output
)在发动机内部。该缓冲区会被代码中回显的数据填满。一旦引擎到达脚本的末尾,它将刷新整个缓冲区,并将其附加到Web服务器开始创建的头信息中(假设Web服务器是为浏览器预先准备响应的服务器,PHP是添加实际内容的服务器)
另一个限制是一些浏览器等待整个HTTP请求完成,然后开始呈现站点。不是所有的人都这样做,但也有一些人这样做
对于真实的实景,我推荐AJAX或更现代的WebSocket。第二个更为生动,因为它不会像AJAX那样以周期性方式重新加载。我建议你重新考虑你想做什么,如果有必要的话
如果你什么都不懂,我建议你看一些维基百科文章:
- 阿贾克斯:
- WebSocket:
sleep()
?@randak可能只是为了好玩。。我也这样做过。。像测试longpolling..你可以在找到一个解决方案-有一些技巧可以刷新输出。缺少一个{
。只是测试了这个-似乎不起作用。是的..谢谢..修复了{
但是请看我的链接。这个代码的精确副本(使用{
)-在我的浏览器上它会立即显示出来(10秒后)。是的,这取决于您的服务器设置。您可能希望将该信息添加到您的答案中。“当您具有这些服务器设置时,以下代码起作用:”
if(ini_get('zlib.output_compression'))
ini_set('zlib.output_compression', 'Off');