如题,flush测试用的网上的例子:
单独运行可行
然后index.php(同样是网上例子改的):
请在下面的输入框中键入字母(A - Z):
Suggestions:
按键以后 等了20s一口气出结果
我想请教一下
php的flush在被ajax调用的时候无效吗?
如果是的话,那怎样才能实现被ajax调用时的flush呢?
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
看一下js中的
xmlhttp.onreadystatechange代码ajax会等待HTTP请求响应完成的时候执行你函数中的操作。
而当你直接访问页面时,字符虽然通过
sleep(1)后每秒一个一个打印出来,是因为字符串先进入了缓冲区,在通过flush函数将缓冲区的内容交由tcp发送到浏览器上,但是响应还没有完成,你会发现浏览器上一直转圈圈或者进度条还在走。所以当你用Ajax请求时,循环了20次,也就是20秒后才完成了响应过程,最终把所有的结果返回。
至于你想用ajax实现这样的效果,应该使用轮询的方式。
你那个请求都没有完成。。。ajax哪里会给你数据啊