在浏览器中按字符串输出文本

时间:2014-04-24 11:41:21

标签: javascript http

想象一下,我有一个像

这样的服务器脚本
echo Content-type: text/plane

tail -F /var/log/http/access.log|grep sex

由于浏览器和Web服务器都缓冲输出,因此在传输结束之前我不会看到结果。

如何逐字符串地查看结果?我可以控制服务器(Perl,PHP),我可以在客户端上使用一些纯JS。也许我应该以某种方式使用WebSockets和AJAX?

1 个答案:

答案 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秒!