是否可以获得无缓冲的Web浏览器输出?

时间:2009-05-28 19:48:19

标签: cgi buffering browser

我有一个小的cgi脚本,用于获取和验证Nagios的配置文件。典型的运行时间是几分钟,我想在运行期间在浏览器中获得一些反馈。

为了说明我想要发生的事情,请考虑以下事项:

#!/bin/sh
echo "Content-type: text/plain"
echo

for i in A B C D E
do
        echo $i
        sleep 10
done

当我通过telnet或wget对这个脚本进行GET时,输出一次出现一行,间隔为十秒(“A”......“B”......“C”......和等等)。

当我尝试在一个普通的浏览器中打开它时,浏览器似乎会缓冲它并在脚本完成时显示输出(50秒的静音......“ABCDE”)。

是否有可能在浏览器到达后立即向用户显示数据?

3 个答案:

答案 0 :(得分:2)

我相信你想要的是使用“html chunk编码”。这使服务器可以向浏览器发送一个可以开始渲染的HTML“块”。 ASP&每当您使用“Response.Write”时,ASP.Net都会为您解决此问题。

以下是一些参考资料:

答案 1 :(得分:1)

使用Wireshark

答案 2 :(得分:0)

在对响应缓冲区写入足够的内容后使用Response.Flush()....

http://www.stephanunrau.com/