想象一下,我有一个像
这样的服务器脚本echo Content-type: text/plane
tail -F /var/log/http/access.log|grep sex
由于浏览器和Web服务器都缓冲输出,因此在传输结束之前我不会看到结果。
如何逐字符串地查看结果?我可以控制服务器(Perl,PHP),我可以在客户端上使用一些纯JS。也许我应该以某种方式使用WebSockets和AJAX?
答案 0 :(得分:0)
工作得很好! text / plain不起作用 - 浏览器仅输出就绪内容 但是text / html很棒!
[root @ CENTOS-6~] #cat chank-server.sh
function log
{
echo $1 >&2
}
log 'starting'
sleep 2
log 'echo headers'
echo HTTP/1.1 200 OK
echo Content-type: text/html
echo Transfer-Encoding: chunked
echo Cache-Control: no-cache
echo
log 'echo messages'
for i in {1..9}
do
echo -ne "9\r\n"
echo -ne "row $i<br>\r\n"
sleep 2
done
log 'send last chunk'
echo -ne "0\r\n"
echo -ne "\r\n"
# | nc -l 9999
以:
运行[root @ CENTOS-6~]#while true;做./chank-server.sh | nc -l 9999;完成
我的浏览器是Chromium的味道,输出是:
row 1
row 2
row 3
row 4
row 5
row 6
row 7
row 8
row 9
而且,是的,逐行暂停2秒!