)ServiceWorkerには、特定のevent.respondWith()が終了したかどうかをチェックする必要があるロジックがあります。キャッシュを削除する必要があります。それを知る方法はありますか?そのイベントを確認しました.respondWith()にthen()またはコールバックがありません。Event.respondWithが完了したことを知る方法(Event.respondWith()のコールバック
1
A
答えて
2
キャッシュのクリーンアップが使用されているResponse
Promiseがevent.respondWith()
に渡された後、fetch
イベントハンドラ内で非同期でオフフックさせることができます(event.respondWith()
が完了したかどうかは心配する必要はありません)。たとえば、キャッシュをいつでもクリーンアップしたい場合それは過去に成長したNのエントリのサイズ。
キャッシュクリーンアップがPromiseを実行するために使用されているResponse
に固有のものである場合、有効なResponse
でチェーンを終了することを確認して、プロミスチェーンにロジックを挿入します。私はあなたがfetch
イベントハンドラを制御でき、それを行うことができると仮定しています。あなたが行うすべてがResponse
が制御ページに渡される遅延になるので、あなたはあなたの約束チェーンの内側あまりしたくない
self.addEventListner('fetch', event => {
const p = promiseThatFulfillsWithResponse(); // Your logic goes here.
event.respondWith(p.then(response => {
return caches.open('my-cache-name')
.then(cache => cache.delete(event.request)) // Or whatever you want to delete.
.then(() => response); // Return response at the end of the chain!
});
});
:ここでは、一般的な(未テスト)のアプローチです。
+0
'const p'の後に' p.then(_ => {deleteTheCache();}) 'を実行し、' event.respondWith(p) 'だけを実行することもできます。 – mjs
関連する問題
- 1. イベントハンドラをevent.respondWith()なしで取得する
- 2. fitToView()が完全に終了したことを知る方法
- 3. 2つのNested FirebaseIndexRecyclerAdapterがデータロードを完了したことを知る方法?
- 4. アプリケーションがファイルの処理を完了したことを知る方法?
- 5. WebViewレンダリングが完了したときを知る方法
- 6. バックボーンmodel.fetch()が完了したときを知る方法?
- 7. CThreadPoolで作業が完了したときを知る方法?
- 8. MongoDB、forEach&Promise:forEachループが完了したときを知る方法?
- 9. 非同期要求が応答を完了したことを知る方法。
- 10. Resqueで作業者が完了したことを知る方法
- 11. pg_restoreが完了したときにプログラムで知る方法
- 12. UITableViewのリロードが完了したときの通知方法
- 13. Windows Phone:Deployment.Current.Dispatcher.BeginInvokeが完了したときの通知方法
- 14. mysqldumpが完了したときの通知方法
- 15. AzureでRemove-AzureStorageShareが完了したときの通知方法
- 16. WPF、タスクが完了したことを知るhowto
- 17. GIFの再生が完了したことを知ります
- 18. iTunesの同期/ファイル転送が完了したときの通知コールバック
- 19. ビデオバッファリングがアンドロイドブラウザで完了していることを知る方法
- 20. Android:SoundPoolの再生が終了したことを知る方法?
- 21. Firebase servercallが完了したことを検出する方法
- 22. QNetworkAccessManager:ダウンロードが完了したことを確認する方法?
- 23. タスクが完了したことをデスクトップに通知
- 24. シークが完了したらAndroid exoplayerコールバック
- 25. ページ内のオブジェクトのロードが完了したときを知る方法
- 26. ストリームが終了したことを知る方法C#
- 27. Bashスクリプト - プログラムが終了したことを知る方法
- 28. WP7 HttpWebRequest複数のリクエストが完了したときを知る方法?
- 29. ImageViewで画像のロードが完了したときを知る方法は?
- 30. XAML要素のロードが完了したときを知る方法
質問を明確にすることはできますか? – Marco
基本的には、私がevent.respondWith()のコールバック関数を持つことができるかどうか、サービスエンジニアからリクエストが完了したことを知る方法を知りたいですか? – biswpo