web-dev-qa-db-ja.com

FirefoxでService Workerキャッシュをクリアする方法は?

Chromeでは、開発ツールからService Workerキャッシュをクリアできます。

Firefoxでそれをどのように実現できますか?

私はこれまで試しました:

  • about:serviceworkersでサービスを登録解除するには
  • about:preferences#privacyの下のキャッシュを空にする
  • Ctrl + F5でページをリロードするには

しかし、それはまだあります...

16
Supersharp

上記のように、今は不可能です。ただし、キャッシュエントリとキャッシュの削除は実装されており、すぐに展開されるはずです( https://bugzilla.mozilla.org/show_bug.cgi?id=1304297 )。また、例えば、Firefox Developer Editionですでに利用可能です。

2
Daniel

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オブジェクトが消えることはありません。つまり、キャッシュは自動的に更新されません。更新は手動で管理する必要があります。これは、作成者がキャッシュを名前でバージョン管理し、安全に操作できるサービスワーカーのバージョンからのみキャッシュを使用することを確認する必要があることを意味します。

20
Leonid Vasilev

Firefoxのアドレスバーにこれを入力し、必要なサービスワーカーの登録を解除します。

about:debugging#workers
19
coder3101