Service Workers to cache image

This commit is contained in:
vapormusic 2021-12-17 11:13:56 +07:00
parent c40e5fa441
commit c2ec359f7b
6 changed files with 52 additions and 0 deletions

View file

@ -1885,6 +1885,13 @@ document.addEventListener('musickitloaded', function () {
request.send();
});
if ('serviceWorker' in navigator) {
// Use the window load event to keep the page load performant
window.addEventListener('load', () => {
navigator.serviceWorker.register('sw.js?v=1');
});
}
function uuidv4() {
return ([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g, c =>
(c ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> c / 4).toString(16)

2
resources/cider-ui/sw.js Normal file
View file

@ -0,0 +1,2 @@
if(!self.define){let e,i={};const s=(s,r)=>(s=new URL(s+".js",r).href,i[s]||new Promise((i=>{if("document"in self){const e=document.createElement("script");e.src=s,e.onload=i,document.head.appendChild(e)}else e=s,importScripts(s),i()})).then((()=>{let e=i[s];if(!e)throw new Error(`Module ${s} didnt register its module`);return e})));self.define=(r,c)=>{const n=e||("document"in self?document.currentScript.src:"")||location.href;if(i[n])return;let o={};const t=e=>s(e,n),a={module:{uri:n},exports:o,require:t};i[n]=Promise.all(r.map((e=>a[e]||t(e)))).then((e=>(c(...e),o)))}}define(["./workbox-962786f2"],(function(e){"use strict";self.addEventListener("message",(e=>{e.data&&"SKIP_WAITING"===e.data.type&&self.skipWaiting()})),e.precacheAndRoute([{url:"ameframework.css",revision:"4bcc8646bb5742638fad52b94e231601"},{url:"apple-hls.js",revision:"2b74055662676b0fcc2d4a4bf994a9dc"},{url:"hlscider.js",revision:"cf7f512e83e32694f2c94f904714fe4c"},{url:"index_old.html",revision:"c21f3e9c5b015599d3ab07639f64a7a8"},{url:"index.js",revision:"8591a69fc9c975a063eb264b7447f173"},{url:"less.js",revision:"b6e574e4d680686786a28e7e71a17bbc"},{url:"musickit.js",revision:"211d80891c3336c1795cb83df58d4b63"},{url:"sortable.min.js",revision:"5cbc31ebec32adf60e27b76418e79d93"},{url:"style-old.css",revision:"aea9ea49df13f2deee42b68654aeea06"},{url:"todo.js",revision:"18d49fabcb96de8bd11455877d8eacb6"},{url:"vue-observe-visibility.min.js",revision:"5a52e761f6aa71b4f65a7b458f698b95"},{url:"vue.js",revision:"0a9a4681294d8c5f476687eea6e74842"},{url:"vuedraggable.umd.min.js",revision:"9a84fec5263bb510cee88e1c3b9583cc"}],{ignoreURLParametersMatching:[/^utm_/,/^fbclid$/,/^X-Amz-Algorithm/,/^X-Amz-Date/,/^X-Amz-SignedHeaders/,/^X-Amz-Expires/,/^X-Amz-Credential/,/^X-Amz-Signature/]}),e.registerRoute(/\.(?:png|jpg|jpeg|svg|webp)$/,new e.CacheFirst({cacheName:"imageinternet",plugins:[]}),"GET"),e.registerRoute(/https:\/\/is[0-9]-ssl\.mzstatic\.com\/image+/,new e.CacheFirst,"GET"),e.registerRoute(/^https:\/\/store-\d{3}\.blobstore\.apple\.com\/.{65}\/image+/,new e.CacheFirst,"GET")}));
//# sourceMappingURL=sw.js.map

View file

@ -0,0 +1 @@
{"version":3,"file":"sw.js","sources":["C:/Users/vieta/AppData/Local/Temp/b97cb0fb56dd447f95668d4898340903/sw.js"],"sourcesContent":["import {registerRoute as workbox_routing_registerRoute} from 'C:/Users/vieta/AppData/Roaming/nvm/v14.18.1/node_modules/workbox-cli/node_modules/workbox-routing/registerRoute.mjs';\nimport {CacheFirst as workbox_strategies_CacheFirst} from 'C:/Users/vieta/AppData/Roaming/nvm/v14.18.1/node_modules/workbox-cli/node_modules/workbox-strategies/CacheFirst.mjs';\nimport {precacheAndRoute as workbox_precaching_precacheAndRoute} from 'C:/Users/vieta/AppData/Roaming/nvm/v14.18.1/node_modules/workbox-cli/node_modules/workbox-precaching/precacheAndRoute.mjs';/**\n * Welcome to your Workbox-powered service worker!\n *\n * You'll need to register this file in your web app.\n * See https://goo.gl/nhQhGp\n *\n * The rest of the code is auto-generated. Please don't update this file\n * directly; instead, make changes to your Workbox build configuration\n * and re-run your build process.\n * See https://goo.gl/2aRDsh\n */\n\n\n\n\n\n\n\n\nself.addEventListener('message', (event) => {\n if (event.data && event.data.type === 'SKIP_WAITING') {\n self.skipWaiting();\n }\n});\n\n\n\n\n/**\n * The precacheAndRoute() method efficiently caches and responds to\n * requests for URLs in the manifest.\n * See https://goo.gl/S9QRab\n */\nworkbox_precaching_precacheAndRoute([\n {\n \"url\": \"ameframework.css\",\n \"revision\": \"4bcc8646bb5742638fad52b94e231601\"\n },\n {\n \"url\": \"apple-hls.js\",\n \"revision\": \"2b74055662676b0fcc2d4a4bf994a9dc\"\n },\n {\n \"url\": \"hlscider.js\",\n \"revision\": \"cf7f512e83e32694f2c94f904714fe4c\"\n },\n {\n \"url\": \"index_old.html\",\n \"revision\": \"c21f3e9c5b015599d3ab07639f64a7a8\"\n },\n {\n \"url\": \"index.js\",\n \"revision\": \"8591a69fc9c975a063eb264b7447f173\"\n },\n {\n \"url\": \"less.js\",\n \"revision\": \"b6e574e4d680686786a28e7e71a17bbc\"\n },\n {\n \"url\": \"musickit.js\",\n \"revision\": \"211d80891c3336c1795cb83df58d4b63\"\n },\n {\n \"url\": \"sortable.min.js\",\n \"revision\": \"5cbc31ebec32adf60e27b76418e79d93\"\n },\n {\n \"url\": \"style-old.css\",\n \"revision\": \"aea9ea49df13f2deee42b68654aeea06\"\n },\n {\n \"url\": \"todo.js\",\n \"revision\": \"18d49fabcb96de8bd11455877d8eacb6\"\n },\n {\n \"url\": \"vue-observe-visibility.min.js\",\n \"revision\": \"5a52e761f6aa71b4f65a7b458f698b95\"\n },\n {\n \"url\": \"vue.js\",\n \"revision\": \"0a9a4681294d8c5f476687eea6e74842\"\n },\n {\n \"url\": \"vuedraggable.umd.min.js\",\n \"revision\": \"9a84fec5263bb510cee88e1c3b9583cc\"\n }\n], {\n \"ignoreURLParametersMatching\": [/^utm_/, /^fbclid$/, /^X-Amz-Algorithm/, /^X-Amz-Date/, /^X-Amz-SignedHeaders/, /^X-Amz-Expires/, /^X-Amz-Credential/, /^X-Amz-Signature/]\n});\n\n\n\n\nworkbox_routing_registerRoute(/\\.(?:png|jpg|jpeg|svg|webp)$/, new workbox_strategies_CacheFirst({ \"cacheName\":\"imageinternet\", plugins: [] }), 'GET');\nworkbox_routing_registerRoute(/https:\\/\\/is[0-9]-ssl\\.mzstatic\\.com\\/image+/, new workbox_strategies_CacheFirst(), 'GET');\nworkbox_routing_registerRoute(/^https:\\/\\/store-\\d{3}\\.blobstore\\.apple\\.com\\/.{65}\\/image+/, new workbox_strategies_CacheFirst(), 'GET');\n\n\n\n\n"],"names":["self","addEventListener","event","data","type","skipWaiting","workbox_strategies_CacheFirst","plugins"],"mappings":"0nBAqBAA,KAAKC,iBAAiB,WAAYC,IAC5BA,EAAMC,MAA4B,iBAApBD,EAAMC,KAAKC,MAC3BJ,KAAKK,oCAY2B,CAClC,KACS,4BACK,oCAEd,KACS,wBACK,oCAEd,KACS,uBACK,oCAEd,KACS,0BACK,oCAEd,KACS,oBACK,oCAEd,KACS,mBACK,oCAEd,KACS,uBACK,oCAEd,KACS,2BACK,oCAEd,KACS,yBACK,oCAEd,KACS,mBACK,oCAEd,KACS,yCACK,oCAEd,KACS,kBACK,oCAEd,KACS,mCACK,qCAEb,6BAC8B,CAAC,QAAS,WAAY,mBAAoB,cAAe,uBAAwB,iBAAkB,oBAAqB,sCAM3H,+BAAgC,IAAIC,aAA8B,WAAc,gBAAiBC,QAAS,KAAO,uBACjH,+CAAgD,IAAID,aAAiC,uBACrF,+DAAgE,IAAIA,aAAiC"}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

39
workbox-config.js Normal file
View file

@ -0,0 +1,39 @@
module.exports = {
globDirectory: 'resources/cider-ui/',
swDest: 'resources/cider-ui/sw.js',
// Define runtime caching rules.
runtimeCaching: [{
// Match any request that ends with .png, .jpg, .jpeg or .svg.
urlPattern: /\.(?:png|jpg|jpeg|svg|webp)$/,
// Apply a cache-first strategy.
handler: 'CacheFirst',
options: {
// Use a custom cache name.
cacheName: 'imageinternet',
// Only cache 10 images.
},
},
{
urlPattern: /https:\/\/is[0-9]-ssl\.mzstatic\.com\/image+/,
handler: "CacheFirst",
},
{
urlPattern: /^https:\/\/store-\d{3}\.blobstore\.apple\.com\/.{65}\/image+/,
handler: "CacheFirst",
},
],
ignoreURLParametersMatching: [
/^utm_/,
/^fbclid$/,
/^X-Amz-Algorithm/,
/^X-Amz-Date/,
/^X-Amz-SignedHeaders/,
/^X-Amz-Expires/,
/^X-Amz-Credential/,
/^X-Amz-Signature/,
]
};