我有一个无限循环,我想睡一会儿,但浏览器只是挂起而没有任何回声。有人可以告诉我为什么吗?
while(1)
{
sleep(1);
echo 'test'.'<br>';
}
答案 0 :(得分:2)
在服务器停止处理之前它将无效。
答案 1 :(得分:2)
您可以尝试使用flush()
刷新输出缓冲区,但它是not guaranteed to work。
从PHP.net:
尝试此功能function flush_buffers() {
ob_end_flush();
ob_flush();
flush();
ob_start();
}
答案 2 :(得分:1)
那是因为PHP以大块的形式向浏览器发送数据。这一切都与优化有关,发送小数据对性能不利,你希望它以足够大的块发送,因此传输它的开销(速度和实际流量)都会相对较低。几串小弦不够大。尝试在flush()
之后添加echo
,它会强制PHP将此字符串发送到浏览器。
答案 3 :(得分:0)
Couse它是一个无限循环它永远不会发送响应或被打破