caching service worker

This commit is contained in:
sky
2025-10-29 20:29:39 -04:00
parent 7aa97c31ca
commit 51bac6f65f
2 changed files with 50 additions and 0 deletions

View File

@ -1,5 +1,6 @@
let sAlert = window.parent.sAlert;
function setBackground() {
let randomNumbers = [100-Math.abs(Math.floor(Math.random() * 200) - 99), 100-Math.abs(Math.floor(Math.random() * 200) - 99)];
document.body.style.setProperty("--gradient-x", randomNumbers[0] + "%");
@ -54,6 +55,9 @@ function setTheme(arg) {
`)
}
document.addEventListener("DOMContentLoaded", ()=>{
if("serviceWorker" in navigator) {
navigator.serviceWorker.register("/sw.js", { scope: '/' });
}
if(!(localStorage.getItem("selenite.fast-mode") == 'true')) {
setBackground();
loadPJS();

46
sw.js Normal file
View File

@ -0,0 +1,46 @@
importScripts(
'https://storage.googleapis.com/workbox-cdn/releases/6.4.1/workbox-sw.js'
);
if(workbox) {
self.skipWaiting();
workbox.core.clientsClaim();
workbox.routing.registerRoute(
/\.(?:png|gif|jpg|jpeg|svg|webp|avif|gif)$/,
new workbox.strategies.CacheFirst({
cacheName: 'images-cache',
plugins: [
new workbox.expiration.ExpirationPlugin({
maxEntries: 500,
maxAgeSeconds: 365 * 24 * 60 * 60,
}),
],
})
);
workbox.routing.registerRoute(
/.*resources\/(semag|sppa).*/,
new workbox.strategies.CacheFirst({
cacheName: 'resources-cache',
plugins: [
new workbox.expiration.ExpirationPlugin({
maxEntries: 100,
maxAgeSeconds: 365 * 24 * 60 * 60,
}),
],
})
);
workbox.routing.registerRoute(
/.*resources\/(games|apps)\.json$/,
new workbox.strategies.StaleWhileRevalidate({
cacheName: 'json-cache',
plugins: [
new workbox.expiration.ExpirationPlugin({
maxAgeSeconds: 24 * 60 * 60,
maxEntries: 2,
}),
],
})
);
};