12

私はサイトにアプリケーションキャッシュをセットアップし、その後まもなく、私が認識したよりも積極的な方法に気づきました。削除したいのですが。恒久的に。

完全に空の変更されたマニフェストファイルを正しいMIMETYPEで渡すと、キャッシュが削除されることを読みました。編集:以下を参照してください。モーリスの答えは唯一の一貫した修正です。

これは最も速く、最も効果的なソリューションですか?もっと良い方法はありますか?

そして、あなたが以前にこの機能を実際に使用したことがあるかどうかをあなたの答えで指定できれば、私は本当に感謝しています-テスト中に表示されなかったあいまいなドキュメントと風変わりなものが私をこの状況に陥らせました。

4

4 に答える 4

19

秘訣は、最初にHTMLページのマニフェストURLを無効なものに変更して、ブラウザがロード時に404を受け取るようにすることです。元のマニフェストも変更してください。変更しないと、新しいHTMLページがダウンロードされません。ブラウザが新しいマニフェストURLのダウンロードに失敗した後、HTMLページからマニフェスト設定を完全に削除できます。

ちょっと風変わりですが、それが既存のマニフェスト参照を削除する唯一の信頼できる方法のようです。

于 2012-01-11T10:10:33.277 に答える
9

2015年6月25日の時点で、404を返してもFirefoxの既存のアプリキャッシュはクリアされず、空白のアプリキャッシュを返してもChromeの既存のアプリキャッシュはクリアされないことがわかりました。次のappcacheを返すことは、IE、Chrome、Safari、およびFirefoxで機能するように見えましたが、index.htmlの「暗黙的な」キャッシュの無効化がどのメカニズムで実行されるかは不明です。

NETWORK:
*

CACHE:
FALLBACK:
于 2015-06-26T22:40:05.123 に答える
4

自分の側から削除したいだけの場合は、ブラウザから削除できます。Chromeでのやり方しか思い出せません。chrome:// appcache-internals /にアクセスして、目的のファイルを削除します。キャッシュとCookieをクリアすることもできます。これでうまくいくはずです。ただし、これはChromeでのみテストしています。

すべての視聴者から削除したい場合、古いキャッシュバージョンがあるかどうかを検出する方法はわかりませんが、Mauriceが提案したように、属性を誤ったリンクで保持することが、私が知る唯一の方法であることを知っています。 ; ただし、おそらくjQueryを使用する別の方法があると確信しています。

于 2014-02-26T21:05:51.263 に答える
2

更新に失敗した後にappcacheをリセットする必要があるという同様の問題が発生しています(つまり、appcacheを完全に削除して、最初から再構築できるようにします)。

Mauriceの回答に基づいて、キャッシュされていないページを開く通常は非表示のリンクをユーザーに提示します。このリンクは、Cookieを書き込んで、ユーザーを前のビューに戻します。このCookieは、次にappcacheが要求されたときにサーバーに404を返すように指示し、ユーザーは通常のログインプロセスを実行します。次にアプリケーションが正常に実行されると、Cookieがクリアされ、通常どおりキャッシュが再開されます。

このようにCookieを使用すると、ビューのマスターバージョンがappcacheでスタックし、壊れたURLをmanifest = ""に挿入することが困難になるという問題を回避できます。つまり、マニフェストURLは同じままですが、サーバーは404で応答します。別段の指示があるまで。

于 2013-07-02T20:41:19.360 に答える