service workers
とreactjs
に関する質問があります。React&Service Worker - キャッシュされたコンテンツ - Informユーザー
キャッシュされたコンテンツについてユーザーに知らせるため、ユーザーにキャッシュされたコンテンツまたは新しいコンテンツが利用可能であることを通知することをお勧めします。
私の質問は今、どのようにユーザーに通知できますか?
私はcreate-react-app
を使用する場合は、registerServiceWorker.js
にそれが言う、このコードがあり、この時点で
、古いコンテンツが削除されているでしょうし、 新鮮なコンテンツがキャッシュに追加されていますが、 。新しいコンテンツが利用可能であるため、リフレッシュしてください。」と表示するには、完璧な時間が です。あなたのウェブアプリにメッセージ
function registerValidSW(swUrl) {
navigator.serviceWorker
.register(swUrl)
.then(registration => {
registration.onupdatefound =() => {
const installingWorker = registration.installing;
installingWorker.onstatechange =() => {
if (installingWorker.state === 'installed') {
if (navigator.serviceWorker.controller) {
// At this point, the old content will have been purged and
// the fresh content will have been added to the cache.
// It's the perfect time to display a "New content is
// available; please refresh." message in your web app.
console.log('New content is available; please refresh.');
} else {
// At this point, everything has been precached.
// It's the perfect time to display a
// "Content is cached for offline use." message.
console.log('Content is cached for offline use.');
}
}
};
};
})
.catch(error => {
console.error('Error during service worker registration:', error);
});
}
しかし、サービス労働者がスクリプトから離れて動作するため、実際にこのスクリプトに、当然のことながら、私は、document
へのアクセスを持っていません。 これを反応成分でどのように処理できますか?
他の人がこの問題をどのように処理してユーザーに通知しますか?