4

私の Web アプリでは、24 時間有効な HTTP キャッシュ ヘッダーと ETag を含むすべての画像を提供しています。ただし、Javascript クライアント アプリが原因で、画像が更新されたのではないかと疑われる場合があります。そのような場合、実際にキャッシュを壊すことなく、ブラウザーに強制的に画像キャッシュを再検証させたいと思います。

たとえば、最近の LastUpdated 日付を持つユーザー レコード (JSON 形式) を取得します。LastUpdated の日付が変更された可能性があるいくつかの理由が考えられます。ユーザーがニックネームを変更したか、新しいボードに参加したか、画像を変更した可能性があります。したがって、画像が変更されていない可能性は十分にありますが、確認する必要があります。

URL にキャッシュ ブレーカーを追加して画像を再リクエストできることは承知しています。しかし、それは画像が変更されたかどうかにかかわらず強制的にリロードされ、ブラウザのキャッシュに 2 つのエントリが作成され、すべての画像を新しい URL で更新する必要が生じます。私が本当に望んでいるのは、ブラウザに同じ URL を再リクエストさせ、リクエストで適切な If-None-Match および/または If-Modified-Since ヘッダーを送信して、画像が変更されていない場合に 304 を取得することです。 .

Javascriptでそれを達成する方法はありますか?

4

2 に答える 2

0

画像はサーバーのキャッシュ内に存在するため、サーバーはクエリを実行する必要がある場所です。ページをロードする前にチェックを行い、必要に応じてサーバーにキャッシュ内の特定の画像を強制的に更新させます。「HTML」部分は、常にすべての img タグなどが正しいと想定する必要があります。

サーバーキャッシュ内の単一ファイルを更新する最良の方法は、別の獣の IMO です。

于 2012-04-20T17:51:43.793 に答える