私のウェブサイトは Apache 2.2.24 + PHP 5.3.22 で実行されています。Apache は mod_deflate でインストールされ、.htaccess は次のようになります。
<ifmodule mod_deflate.c>
AddOutputFilterByType DEFLATE text/text text/html text/plain text/xml text/css application/x-javascript application/javascript text/javascript
</ifmodule>
ファイルは送信前に圧縮されます。理想的にはhtmlページのヘッド部分をブラウザに送信するために、チャンク転送を使用する方法があるかどうか疑問に思っています。
<html>
<head>
...
</head>
<?php
ob_flush();
flush();
sleep(10);
?>
<body>
...
</body>
</html>
残念ながら、DEFLATE がオンの場合、これは機能しません。ヘッドは 10 秒後、つまりページ全体が受信されたときにロードされます。一方、.htaccess ファイルからオプションを削除して DEFLATE をオフにしようとすると、sleep() 関数が呼び出される前に head が送信されます。
最新の Apache と PHP のバージョンで、mod_deflate とチャンク転送を連携させる方法はありますか? http://www.phpied.com/progressive-rendering-via-multiple-flushes/によると、そのはずですが、かなり古い記事なので、時間を無駄にする前にあなたの考えを聞きたいです。