html5 appcacheマニフェストを永久に削除します
-
26-10-2019 - |
質問
私はサイトでアプリケーションキャッシュをセットアップし、その後すぐに、私が実現したよりも攻撃的な方法に気付きました。削除したいです。永久に。
変更されたマニフェストファイルを完全に空で、正しいMIMETYPEを使用してキャッシュを削除することを読みました。 編集:以下を参照してください。モーリスの答えは唯一の一貫した修正です。
これは最速で最も効果的なソリューションですか?より良い方法はありますか?
そして、あなたがあなたの答えで実際にこの機能を実際に使用したかどうかを指定できるなら、私はそれを本当に感謝しています - テスト中に示さなかった曖昧なドキュメントと風変わりなのは、私をこの状況に巻き込んだものです。
解決
トリックは、最初にHTMLページのマニフェストURLを無効なものに変更して、ブラウザがロード時に404を受信するようにすることです。元のマニフェストも変更してください。そうしないと、新しいHTMLページはダウンロードされません。ブラウザが新しいマニフェストURLのダウンロードに失敗した後、HTMLページからマニフェスト設定を完全に削除できます。
ちょっと奇抜ですが、それは既存のマニフェストリファレンスを削除する唯一の信頼できる方法のようです。
他のヒント
6/25/2015の時点で、404を返すことはFirefoxの既存のAppCacheをクリアしないことがわかり、空白のAppCacheを返すことはChromeの既存のAppCacheをクリアしません。次のAppCacheを返すことは、IE、Chrome、Safari、およびFirefoxで機能するように見えましたが、index.htmlの「暗黙の」キャッシュの無効化がどのようなメカニズムによって達成されているかは不明です。
NETWORK:
*
CACHE:
FALLBACK:
更新に失敗した後にAppCacheをリセットする必要がある同様の問題がありました(つまり、AppCacheを完全に削除して、ゼロから再構築できるようにします)。
Mauriceの回答に基づいて、ユーザーに非キャッシュされたページを開く通常の隠されたリンクを提示します。これは、Cookieを書き、ユーザーを前のビューに返すだけです。このCookieは、次回AppCacheが要求されるときに404を返すようにサーバーに指示し、ユーザーは通常のログインプロセスを介して取得されます。次にアプリケーションが正常に実行されると、通常どおりCookieとキャッシュの履歴書がクリアされます。
この方法でCookieを使用すると、ビューのマスターバージョンがAppCacheに貼り付けられている問題を回避し、マニフェスト= ""マニフェストURLに壊すことを挿入することが難しくなりますが、サーバーは404で応答します。別の方法で言われるまで。
あなたの側からそれを削除したいだけなら、あなたはそれをブラウザからすることができます。 Chromeでそれを行う方法しか覚えていません。 Chrome:// appcache-internals/&&required file(s)に移動します。また、キャッシュとクッキーをクリアすることもできます。ただし、Chromeでテストするだけです。
すべての視聴者のためにそれを削除したい場合、彼らが古いキャッシュバージョンを持っているかどうかを検出する方法はありませんが、モーリスが示唆したように、誤ったリンクで属性を維持することは私が知っている唯一の方法であることを知っています;しかし、私は別の方法があると確信しています、おそらくJQueryではそうです。