如何获得cgi脚本的部分输出(逐件)

时间:2014-07-30 13:23:27

标签: firefox output-buffering

给出以下小cgi脚本:

#!/bin/bash

echo "Content-type: text/html"
echo ""

echo '<html>'
echo '<head>'
echo '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">'
echo '</head>'
echo '<body>'
if [ $QUERY_STRING="yes" ]; then
    echo "before"
    sleep 5
    echo "after"
fi
echo '</body>'
echo '</html>'

如何在&#34;之前设法获得输出?首先,然后延迟5秒,然后输出&#34;&#34;在浏览器中按此顺序?

1 个答案:

答案 0 :(得分:1)

鉴于您在评论中提供的各种信息,问题是由Apache级别的某些输出缓冲引起的。

要“流式传输”CGI输出,您绝对需要禁用mod_deflate(至少对于包含CGI的目录)。如果您使用.htaccess作为配置,那么

Options +ExecCGI
AddHandler cgi-script .cgi .sh
SetEnv no-gzip dont-vary

<小时/> 我已将您的问题重新标记为,希望有人可以提供更好的信息。如果确认问题出在Apache配置上,那么你可能会更好地询问http://serverfault.com