以下是我希望每秒打印消息的代码示例。
set_time_limit(60);
foreach($array as $key => $value)
{
echo $value;
sleep(5);
}
我想知道JS脚本应该如何在循环的每一步中立即输出$ value的结果而不等到它停止?
答案 0 :(得分:0)
您无法使用JavaScript访问PHP变量。 JavaScript在浏览器中运行,而PHP在服务器上运行。
您必须使用fab的解决方案并使用 echo 和flush()将当前输出缓冲区发送到浏览器。但是一旦你这样做,就不再需要使用JavaScript,因为无论如何都会显示文本。
foreach($array as $key => $value)
{
echo $value;
flush();
sleep(5);
}
答案 1 :(得分:0)
Javascript可以(并且应该)为您完成所有计时工作,将数组输出为编码的JSON字符串会更加明智,可以将其作为javascript变量打印到HTML中。
<script>
var array = "<?php echo json_encode($array); ?>";
</script>
然后,您可以轻松使用javascript来解析数组,并使用浏览器显示每秒1秒的消息。将数组从JSON字符串转换回类似于......的数组之后
var clearInterval = setInterval(deliver_message,1000); // Run a function every second
function deliver_message() {
document.write(array.shift()); //This could be a Jquery append, or similar
if (array.length == 0)
clearInterval(loop);
}
您的服务器端处理是将所有信息传递给浏览器,它是客户端... javascript ...即可操作它的显示方式。
答案 2 :(得分:-1)
为何选择JavaScript?
您可以在脚本完成flush()
之前随时发送输出:
set_time_limit(60);
foreach($array as $key => $value)
{
echo $value;
flush();
sleep(5);
}