Chromeでは、開発ツールからService Workerキャッシュをクリアできます。
Firefoxでそれをどのように実現できますか?
私はこれまで試しました:
about:serviceworkers
でサービスを登録解除するにはabout:preferences#privacy
の下のキャッシュを空にするCtrl + F5
でページをリロードするにはしかし、それはまだあります...
上記のように、今は不可能です。ただし、キャッシュエントリとキャッシュの削除は実装されており、すぐに展開されるはずです( https://bugzilla.mozilla.org/show_bug.cgi?id=1304297 )。また、例えば、Firefox Developer Editionですでに利用可能です。
Firefox Webコンソールで次のコードスニペットを実行できます。
caches.keys().then(function (cachesNames) {
console.log("Delete " + document.defaultView.location.Origin + " caches");
return Promise.all(cachesNames.map(function (cacheName) {
return caches.delete(cacheName).then(function () {
console.log("Cache with name " + cacheName + " is deleted");
});
}))
}).then(function () {
console.log("All " + document.defaultView.location.Origin + " caches are deleted");
});
このコードスニペットの詳細については、MDNの Cache APIページ を確認してください。
現在のバージョンのFirefoxでは、ストレージインスペクターを使用してService Workerキャッシュをクリアできません。現在利用可能な機能については Storage Inspection documentation をご覧ください。 Service WorkerキャッシュはブラウザーのHTTPキャッシュとは独立して機能し、スクリプトによってのみ管理されるため、about:preferences#privacy
を使用したり、Service Workerの登録を解除したりすることはできません。 Service Workerの仕様 からの関連する抜粋:
5.2キャッシュの有効期間についてキャッシュインスタンスはブラウザのHTTPキャッシュの一部ではありません。 Cacheオブジェクトは、作成者が自分で管理する必要があるものです。作成者が明示的に要求しない限り、Cacheオブジェクトは更新されません。作成者がエントリを削除しない限り、Cacheオブジェクトは期限切れになりません。 Service Workerスクリプトが更新されたからといって、Cacheオブジェクトが消えることはありません。つまり、キャッシュは自動的に更新されません。更新は手動で管理する必要があります。これは、作成者がキャッシュを名前でバージョン管理し、安全に操作できるサービスワーカーのバージョンからのみキャッシュを使用することを確認する必要があることを意味します。
Firefoxのアドレスバーにこれを入力し、必要なサービスワーカーの登録を解除します。
about:debugging#workers