に私は私の画像をレンダリングするために、次のコードを使用しています:イメージのロードはIE、ChromeとFirefoxで完璧レンダリング画像PHP遅いロードクロム
// 1. Check if image exists
$image = glob("public/images/$category/$id/$name.*");
// Image exists
if(count($image) === 1) {
// 2. Get file extension
$path_parts = pathinfo($image[0]);
// 3. Add the content type to the header
switch(strtolower($path_parts['extension']))
{
case "gif":
header("Content-type: image/gif");
break;
case "jpg":
case "jpeg":
header("Content-type: image/jpeg");
break;
case "png":
header("Content-type: image/png");
break;
case "bmp":
header("Content-type: image/bmp");
break;
case "svg":
header("Content-type: image/svg+xml");
break;
default:
self::setNotFoundHeaders();
break;
}
// 4. Set the rest of the Header information
header("Expires: Mon, 1 Jan 2099 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
// 5. Get the size for content length
$size= filesize($image[0]);
header("Content-Length: $size bytes");
// 6. Output the file contents
readfile($image[0]);
}
が、それはIEとFirefoxでロードするために100ミリ秒かかりながら、 Chromeでの読み込みには5秒かかります。これは、クロームのネットワークタブは次のようになります。
それがロードを完了するために5秒を要した場合でも、画像は約100ミリ秒で、通常の速度で準備し、表示されています。
また、あなたはなぜIDKの、ファイルタイプは「文書」ではなく「イメージ」であることを画像で見ることができます。
私は、画像をレンダリングするために別のコードを使用して試してみましたが、私は同じ動作を得た:私が間違って
$fp = fopen($image[0], 'rb');
fpassthru($fp);
何をしているのですか?私はいくつかのヘッダーが欠けていますか?
ありがとうございました!
おかげで@paolo! 'while(ob_get_level()> 0){ob_end_flush(); } 'はトリックをしました。 'header(" Connection:close ")'と書かれていますが、ドキュメントには 'Connectionヘッダーにリストされているメッセージヘッダーは使用できませんこのようなキャッシュ・Control.'など、エンド・ツー・エンドのヘッダは、ので、多分それは私が使用したキャッシュ制御ヘッダと競合などがIDKの...私はバッファをフラッシュしたり、前のヘッダを追加使用する必要がありますか?おかげで再びお時間を –
だけバッファして終了し(フラッシュ) – Paolo