当我用php构建一组元素(比如100)(在循环中) 仅在循环完成时页面是否发送到客户端,或者在循环完成之前客户端上的页面是否已显示在客户端上?感谢
答案 0 :(得分:3)
您可以随时在PHP代码中控制输出到客户端浏览器
示例立即发送给客户
for($i = 0; $i < 100; $i ++) {
echo $i, " - sent ";
sleep(1);
flush(); // Send to client Instantly
}
循环后发送示例
ob_start();
for($i = 0; $i < 100; $i ++) {
echo $i, " - sent ";
sleep(1);
}
ob_end_flush() // Send after loop
示例3(这将只使用您的默认输出缓冲区配置)
for($i = 0; $i < 100; $i ++) {
echo $i, " - sent ";
sleep(1);
}
最后(信用:Ninsuo)
有些浏览器在页面完全加载之前不显示任何内容,因此我们并不总是控制刷新
答案 1 :(得分:1)
取决于output buffering的配置方式。
您可以看到不同的选项here。
答案 2 :(得分:0)
我会说,在脚本结束之前,您不能依赖于向用户显示的任何内容。虽然您可以设置PHP的缓冲设置,然后这将通过Apache可能会或可能不会缓冲,然后到浏览器,也可能缓冲或不缓冲。
在用户可用时显示用户数据位的最安全方法是在页面加载后通过客户端浏览器进行AJAX调用。