-1

私はこれらの2つのphp変数を持っています:$img1srcそして$img2src、(それらはどこにでもphp変数をエコーできるのでPHPは無関係です)それらは両方とも画像のURLを保持します。これらの画像をプリロードできるのか、それともキャッシュできるのか疑問に思いました。

私の目標は、誰かがページを更新したときに、これらの写真をすぐにに表示したいということです<img src >

4

4 に答える 4

1

魚をあげたいわけではなく、Google がいかに釣り竿であるかを示したいので、特定のコードを提供するつもりはありません。

何が表示されるかを確認するためだけにグーグルで検索"php cache images tutorial"しました。以下は素晴らしいリソースです。

http://dtbaker.com.au/random-bits/how-to-cache-images-generated-by-php.html

それよりずっと良くなることはできません。

于 2012-04-20T03:59:48.790 に答える
0

確かに、これを試してみてくださいjavascript

var image1 = new Image(), image2 = new Image();
image1.src = <?php echo $img1src; ?>;
image2.src = ?<php echo $img2src; ?>;

これで画像がプリロードされるため、画像にimgタグを追加するとDOMすぐに画像が表示されます。

于 2012-04-20T03:09:56.553 に答える
0

画像のキャッシュは、実際には PHP の仕事ではありません。PHP を使用して、表示するかどうかを決定する必要があります。(PHP で実行できるキャッシングがありますが、同じ意味ではありません。) 本質的に、実行したいことは、クライアントのブラウザーに 2 番目のイメージを要求させることです。ブラウザが画像を取得すると、ヘッダーで「if-modified-by」パラメータが自動的に送信されます。次にページを読み込むと、応答コードは 304 になり、画像がすぐに読み込まれます。これを行うには、さまざまな方法から選択できます。ページの読み込み後に JavaScript で画像を読み込む (追加の読み込み時間を防ぐため) または、ページのどこかに隠されている画像タグを含めることができます。

私もテストしていませんが、画像に ajax リクエストを直接送信できる可能性があります。その方法でキャッシュするかどうかはわかりません。

編集:これは最もエレガントな解決策ではありませんが、アイデアを理解する必要があります。

JS の例:

<?php
session_start();
if (!isset($_SESSION['graphic'])) $_SESSION['graphic'] = "http://www.tomsfreelance.com/laptop/DSC_0011.JPG";
else $_SESSION['graphic'] = "http://www.tomsfreelance.com/laptop/DSC_0012.JPG";
?>
<html>
<head>
<script>
function loadImage() {
    document.getElementById('preload').style.backgroundImage = "url(http://www.tomsfreelance.com/laptop/DSC_0012.JPG)";
}
</script>
</head>
<body onload="loadImage();">
<div id="preload" style="display: none;"></div>
<img src="<?php echo $_SESSION['graphic'];?>">
</body>
</html>
于 2012-04-20T03:32:49.507 に答える
0

全体的に http リクエストを減らすことが目的の場合:これらの画像を表示するCSS スプライトおよび/またはデータ URLメソッドを試すことができます。これらの方法は、画像が小さい場合に最も効果的です。

于 2012-04-20T03:35:37.913 に答える