0

私はHTML5appcacheを使用していますが、ほとんどの場合うまく機能しています。ただし、サーバーにコメント内に一意のバージョン番号が含まれる新しいマニフェストファイルがあると確信している場合でも、ユーザーのブラウザ(ChromeまたはSafari)がキャッシュされたマニフェストファイルを保持することがあります(「#app version」など)。 1.0.0.8 "など)。

IIS(バージョン6)では、コンテンツの有効期限が1日に設定されていたので、それが問題になる可能性がありますか?デバッグを困難にするこの問題を再現できないようです。念のため、IISでは、マニフェストファイルを格納するディレクトリのコンテンツの有効期限を「すぐに期限切れ」に変更しました。新しいバージョンが利用可能になったにもかかわらず、一部のブラウザがマニフェストファイルにぶら下がっていた理由を説明できますか?

また、ブラウザーがこのように動作している場合、サーバー上のマニフェストファイルを削除しても、ユーザーのブラウザーはマニフェストファイルの独自のキャッシュコピーを使用することに気付きました。これは、ファイルが使用できなくなった場合には発生しないはずです。私の理解では。

ありがとう、

アンディ

4

1 に答える 1

1

ここでの私の答えから引用: https://stackoverflow.com/a/13282735/727575

はい、これが現在の「正しい」動作です。IIS コンテンツの有効期限とは関係ありません。これが起こることです:

マニフェスト ファイルに変更を加え、ブラウザーを更新すると、次のようになります (オンラインであると仮定します)。

  • ブラウザは最初にキャッシュ内のすべてのファイルをロードし直します
  • 次に、ブラウザはオンラインでマニフェスト ファイルをチェックします
  • マニフェスト ファイルが変更されたことを検出すると、新しいファイルのダウンロードに進みます。
  • ただし、この時点ではまだ「古いファイル」が表示されていることに注意してください。これは、オンラインで「新しいファイル」をダウンロードする前にブラウザが古いファイルを読み込んでいるためです。
  • この時点で、もう一度更新を押すと (2 回目)、「新しいファイル」を取得する必要があります。
  • これは現在の標準的な動作です。一部の人々は、ユーザーに別の更新を行うように求めるイベント ハンドラーを配置します (最初の更新後)。

したがって、基本的には、2 回更新するか、「window.applicationCache」からイベントの 1 つをスローして処理する必要があります。

window.applicationCache の使用例を見るには、http ://www.html5rocks.com/en/tutorials/appcache/beginner/ にアクセスしてください。

「キャッシュの更新」セクションの下にあります。

于 2012-11-08T05:05:34.733 に答える