3

私は次のようなことをしています。画像がユーザーのコンピューターにキャッシュされ、そのタイムスタンプがサーバー上のタイムスタンプと同じである場合、キャッシュされたバージョンを表示します。それ以外の場合は、サーバーからイメージをロードしないでください。

JavaScriptでこれができるのではないかと思うので、この投稿にjavascriptのタグを付けました。不適切な場合は、タグを付け直すのを手伝ってください。

編集: ここでは、実装する内容について詳しく説明します。私は、ユーザーが各画像の横にある[サムネイルを表示]ボタンをクリックした場合にのみサムネイルが読み込まれる、Webベースのファイルエクスプローラーのようなものに取り組んでいます。サムネイルがすでにキャッシュされている場合は、キャッシュされたバージョンを使用します。それ以外の場合は、一般的な画像アイコンを表示します。

4

5 に答える 5

1

これは私には少し奇妙に思えます。

ファイルのリストを表示し、ユーザーに「サムネイルの表示」をクリックするオプションを与えることとして、機能を説明します。これは、ユーザーが特に画像を要求した場合にのみサーバーから画像を読み込もうとすることを意味します。したがって、多数の画像の大量読み込みの可能性はすでに停止しています。

したがって、画像がブラウザのキャッシュにない場合(最初のアクセスでは何もありません)、一般的な画像アイコンが表示されます。次の訪問では、画像はまだキャッシュにないので、一般的な画像アイコンを再度取得します。では、一般的な画像アイコン以外のものはどのように表示されますか?

ここで、要件を満たしていないことを認めるソリューションについて説明しますが、これはこのタイプのソフトウェアの一般的な実装です。

  1. 「サムネイルを表示」オプションでファイルを表示する
  2. [サムネイルを表示]オプションを選択した場合は、サーバーからサムネイルを読み込みます(スクリプトによってサイズ変更された画像が提供されることがよくあります。この画像は、一定量のサイズ変更を再度処理する必要がないように、サーバーに保存される場合もあります。時間)
  3. ブラウザは自動的に画像をキャッシュし、しばらくの間サーバーリクエストを防ぎます
于 2010-10-29T07:12:24.747 に答える
1

私のRSSリーダーは、投稿が多いフィードの場合、投稿の全ページを読み込みます。エントリの数は、実際のウィンドウのサイズによって異なります。リストの一番下までスクロールすると、投稿がさらにある場合は別のページが読み込まれます。

それはあなたのファイルエクスプローラーに適用できますか?つまり、ユーザーは常に20個のサムネイルをロードしますが、必要な場合を除いてそれ以上ロードすることはありません。サムネイルを表示するためにクリックする必要があるファイルエクスプローラーを使用したことはありません。

于 2010-10-29T07:58:35.733 に答える
0

これはあなたが心配しなければならないことではありません。ブラウザがこれを自動的に行います。サーバーが正しいヘッダーを送信していることを確認する必要があります。追加のHEADリクエストを回避するために、ファイルに適切なキャッシュ設定を設定すると便利です。

于 2010-10-29T06:11:17.573 に答える
0

サーバー上で移動/削除/名前変更するだけではいけませんか?次に、壊れた画像をjavascript Image.onErrorで処理して、キャッシュされた画像を持っていない人の壊れた画像タグを非表示にします。

私はそれが彼らのbroswerchacheでそれを持っている人々のためにキャッシュされたバージョンを示すだろうと思います。残りの人々は何もしません

于 2010-10-29T06:39:32.033 に答える
0

ブラウザは、「If-Modified-Since」ヘッダーと「ETag」ヘッダーを送信して、リソースのバージョンがあることをサーバーに示すことができます。これらのヘッダーに関するW3キャッシュルールを確認してください。

サーバー上でこれらのヘッダーを照会し、見つからない場合は汎用アイコンを送り返し、見つかった場合は「304NotModified」応答を返すことができます。

于 2010-10-29T07:05:05.967 に答える