我正在尝试在echo命令之间插入延迟,并希望使用 sleep()函数。不幸的是,据我所知,PHP中的sleep()函数会延迟整个脚本。我想知道这周围是否有诀窍?
我正在尝试完成以下
有没有办法在没有任何JS或其他东西的情况下使用PHP?
答案 0 :(得分:2)
我认为你需要的只是一些javascript:
<p id="p"></p>
<script>
setTimeout(function() {
document.getElementById('p').innerHTML = "line1";
}, 2000);
setTimeout(function() {
document.getElementById('p').innerHTML = "line2";
}, 4000);
</script>
答案 1 :(得分:2)
我假设当你说你不想延迟你正在谈论输出的整个脚本时...你不想延迟整个输出,只是睡眠后的东西。
要记住几件事:
在收到1k内容之前,IE往往不会显示任何内容。要解决此问题,您需要通过输出一些填充...例如1024个空格来启动脚本。 (这对实际的HTML显示没有影响)
您需要确保网络服务器不会以任何方式压缩您的内容
您需要在回显后刷新输出缓冲区。
所有这些都加起来像这样:
<?php
// turn off output compression
@apache_setenv('no-gzip', 1);
ini_set('zlib.output_compression', 0);
// no need to flush after every output call
ob_implicit_flush(true);
// some padding for IE
echo(str_repeat(" ", 1024) . "\n");
echo("Something here<br />");
sleep(5);
echo("Something else<br />");
?>