PHP什么时候不一次输出所有页面?
这里有点奇怪,我想这会输出一个页面并逐部分显示,直到全部加载(类似于Wordpress更新/重新安装过程的工作方式):PHP什么时候不一次输出所有页面?,php,html,Php,Html,这里有点奇怪,我想这会输出一个页面并逐部分显示,直到全部加载(类似于Wordpress更新/重新安装过程的工作方式): 我不知道您认为php是如何工作的,但它只是服务器端,您希望在客户端进行部分更新。PHP不是这样工作的 当您调用该php脚本时,php解释器开始执行它,将输出放入临时位置,然后使用sleep函数,php解释器等待到毫秒,然后继续执行,将输出连接到临时位置,然后继续。。。完成所有脚本执行后,php将整个输出发送到客户端 如果您需要对页面进行部分更新,则需要进入异步调用和ajax的
我不知道您认为php是如何工作的,但它只是服务器端,您希望在客户端进行部分更新。PHP不是这样工作的
当您调用该php脚本时,php解释器开始执行它,将输出放入临时位置,然后使用sleep函数,php解释器等待到毫秒,然后继续执行,将输出连接到临时位置,然后继续。。。完成所有脚本执行后,php将整个输出发送到客户端
如果您需要对页面进行部分更新,则需要进入异步调用和ajax的世界。它缓冲输出,并且仅在页面加载完成时或在缓冲了几千字节后发送。您可以通过将代码完全包装到和ob\u end\u flush()
,或者在这种情况下,在每次睡眠前调用,来控制此功能
更多信息:php是服务器端。您是否使用javascript的setTimeout()
函数尝试过这一点
下面是一个字符串的示例,它在5秒延迟后重复了10次
<script>
setTimeout(test, 5000);
function test(){
for (var i=0;i<10;i++){
document.write("test <br />");
}
}
</script>
设置超时(测试,5000);
功能测试(){
对于(var i=0;这与我试图解决的关于为什么一次打印出整个页面的问题无关。php是服务器端的,这意味着它一次发送到服务器,得到处理,然后返回结果。这样做可能是javascript。分数超过3000,我想OP理解PHP是什么。他们只是在学习占该语言90%的怪癖。这不是PHP的“怪癖”。它是HTTP协议的一部分。回想一下,该协议要求您定义响应大小(内容长度)在HTTP头文件中,任何语言都不可能预测它的响应大小,直到它处理完所有可能的输出。@Sean说得好,但我知道我看到过各种页面开始加载,然后随着页面完全下载而扩展。没有页面(可能非常小的页面除外)在一个数据包中出现!
<script>
setTimeout(test, 5000);
function test(){
for (var i=0;i<10;i++){
document.write("test <br />");
}
}
</script>