function registerServiceWorker(serviceWorkerFileName) {
|
if ("serviceWorker" in navigator) {
|
navigator.serviceWorker
|
.register(serviceWorkerFileName)
|
.then((registration) => {
|
console.log("Service Worker registered with scope:", registration.scope);
|
})
|
.catch((error) => {
|
console.log("Service Worker registration failed:", error);
|
});
|
}
|
}
|
|
function awakenServiceWorker() {
|
if ("serviceWorker" in navigator) {
|
navigator.serviceWorker.ready.then((registration) => {
|
registration.active.postMessage({ type: "awaken" });
|
});
|
}
|
}
|
|
// sw.js and sw-fallback.js are part of the label-studio/label_studio/core/static/js/ directory
|
// and are copied with the rest of the static files when running `python manage.py collectstatic`
|
registerServiceWorker("/sw.js");
|
|
// Wake up the service worker when the page becomes visible
|
// This is needed to ensure we are cleaning up cache when the user is using the application
|
// and not only when the user is closing the tab.
|
document.addEventListener("visibilitychange", () => {
|
if (!document.hidden) {
|
awakenServiceWorker();
|
}
|
});
|