0

当我用php(在循环中)构建一组元素(比如100)时,页面是仅在循环完成时发送到客户端,还是在循环完成之前客户端页面已经显示在客户端上?谢谢

4

3 回答 3

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)

某些浏览器在页面完全加载之前不会显示任何内容,因此我们并不总是控制刷新

于 2012-09-13T11:50:29.513 回答
1

这取决于您的输出缓冲是如何配置的。

您可以在此处查看不同的选项。

于 2012-09-13T11:43:28.733 回答
0

我想说,在脚本结束之前,您不能依赖向用户显示的任何内容。虽然您可以设置 PHP 的缓冲设置,但这将通过可能缓冲或不缓冲的 Apache,然后到浏览器,浏览器也可能缓冲或不缓冲。

在用户数据可用时显示数据的最安全方法是在页面加载后通过客户端浏览器的 AJAX 调用。

于 2012-09-13T11:54:25.157 回答