前端了解下后端,学了些 php,如下代码:
<?php
echo "钱钱钱钱";
sleep(10);
echo '啊啊啊啊啊';
?>
它不是先输出钱,而是延迟 10 秒后,钱和啊一起输出。
py 它就是先输出钱,延时后再输出啊
所以各位巨大有什么解决办法吗
前端了解下后端,学了些 php,如下代码:
<?php
echo "钱钱钱钱";
sleep(10);
echo '啊啊啊啊啊';
?>
它不是先输出钱,而是延迟 10 秒后,钱和啊一起输出。
py 它就是先输出钱,延时后再输出啊
所以各位巨大有什么解决办法吗
|
hahasongNov 24, 2019 via iPhone
1
前端你不了解 http 吗,想实现你的要求得在命令行下执行
|
|
815979670Nov 24, 2019 via Android
2
cli 模式不是这样的
|
|
also24Nov 24, 2019
3
缓冲区的原因,强制 flush 可解
|
|
optionalNov 24, 2019 via iPhone
4
可以 flush 的
|
|
dobeleeNov 24, 2019 via iPhone
5
请先学习一下 http。。。
|
|
nvkouNov 24, 2019 via Android
6
楼上说明了。php-cli 也是有的,之前试过用来做 ws 服务器
|
|
otakustayNov 24, 2019
7
不是,这和 HTTP 啥关系,HTTP 哪里规定了要一起输出的,楼上几位让楼主学 HTTP 的是几个意思,学歪吗?
|
|
holdmycosmoNov 24, 2019
8
http 还能一次请求,给俩响应?你请求一次,还能先返回'钱钱钱钱',然后等 10 秒,再返回'啊啊啊啊啊'?
|
|
Trim21Nov 24, 2019 via Android
9
这跟 http 有啥关系,http 里面一个请求也可以先返回一部分,再等十秒再返回另一部分啊,不关闭链接 body 分两次写不就行了吗。
php 能不能做到是另一回事,可 http 又不管你服务器是边渲染边返回还是渲染完了才开始响应。 |
|
10
|
|
11
这跟 HTTP 好像确实没关系,因为是这跟 HTTP 好像确实没关系,因为是一次请求
|
|
dorentusNov 24, 2019 via iPhone
12
@worldtongfb 当然可以的
|
|
CEBBCATNov 24, 2019 via Android
13
设置响应头为流模式应该可解
|
|
pythonNov 24, 2019 via Android
14
想一下下载文件,就知跟 HTTP 没关系。
|
|
yEhwG10ZJa83067xNov 24, 2019
15
|
|
yEhwG10ZJa83067xNov 24, 2019
16
|
|
5200Nov 25, 2019
17
```
//header('X-Accel-Buffering: no'); if (ob_get_level() == 0) ob_start(); for ($i = 0; $i<30; $i++){ echo "<br> Line to show."; echo str_pad('',4096)."\n"; echo date('Y-m-d H:i:s')."\n"; ob_flush(); flush(); sleep(1); } echo "Done."; ob_end_flush(); ```  如果是用 Apache,可以直接每秒输出一条记录 。 如果是 nginx 作为 web 服务器时,就需要加上 header('X-Accel-Buffering: no'); |
|
otakustayNov 25, 2019
19
@julyclyde 这是对的,但问题是 http 很容易选 chunked 模式啊……即使 PHP 不是 chunk,前面的 nginx 可能也给你 chunk 掉了
|
|
20
|