v1.4.8r Add service worker to cache the webpages, but i dont know if it works

This commit is contained in:
victor 2020-11-26 09:20:34 +01:00
parent f7f449f366
commit 5a073b5cb4
6 changed files with 21276 additions and 10 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,81 @@
const staticCacheName = 'site-static-v2';
const dynamicCacheName = 'site-dynamic-v1';
const assets = [
'/',
'/css/app.css',
'/css/normalize.css',
'/css/webapp.css',
'/css/webappdark.css',
'/home',
'/events'
];
// install event
self.addEventListener('install', evt => {
//console.log('service worker installed');
evt.waitUntil(
caches.open(staticCacheName).then((cache) => {
console.log('caching shell assets');
return cache.addAll(assets);
})
);
});
// activate event
self.addEventListener('activate', evt => {
//console.log('service worker activated');
evt.waitUntil(
caches.keys().then(keys => {
//console.log(keys);
return Promise.all(keys
.filter(key => key !== staticCacheName && key !== dynamicCacheName)
.map(key => caches.delete(key))
);
})
);
});
// fetch event
self.addEventListener('fetch', evt => {
//console.log('fetch event', evt);
evt.respondWith(
caches.match(evt.request).then(cacheRes => {
return cacheRes || fetch(evt.request).then(fetchRes => {
return caches.open(dynamicCacheName).then(cache => {
cache.put(evt.request.url, fetchRes.clone()).then(r => {
return fetchRes;
});
})
});
})
);
});
//Push notification, this is more of a demo you can test in the dev tool
self.addEventListener('push', evt => {
const title = "Test Notification";
const body = "Det her et en demo på hvordan en notification kan se ud! ";
const icon = "/icons/browserFavIcon.svg"
const tag = "simple-push-example-tag";
evt.waitUntil(
self.registration.showNotification(title, {
body : body,
icon : icon,
tag : tag
})
);
});
function displayNotification(){
if(Notification.permission === 'granted'){
navigator.serviceWorker.getRegistration()
.then(function (reg){
reg.showNotification('Helloe ')
})
}
}

View File

@ -0,0 +1,28 @@
//Service Worker Registration
/*
Make sure that we support service worker :)
*/
if('serviceWorker' in navigator){
window.addEventListener('load', () => {
navigator.serviceWorker
.register('/js/serviceWorkerCachedWebpags.js')
.then(reg => console.log("Service Worker has been: registered"))
.catch(err => console.log(`Service Worker error: ${err}`))
})
}
/*
Notification.requestPermission().then(function(permission){
console.log('Notification permission was:', permission)
});
if('caches' in window){
console.log("The browser supports caching ")
}else {
console.log("This browser is some junk, it dosen't support caching :(")
}
*/

View File

@ -1,4 +1,8 @@
@extends("app.layout.base")
@section("title")
Home
@endsection
@section("content")
<style>
iframe, .ql-video {
@ -201,7 +205,7 @@
</div>
@if($new->resource_id !== null)
<div class="header" style="background-size: cover; background-position: center; background-image: url('{{ asset(\App\Resource::query()->where("id", "=", $new->resource_id)->first()->filename) }}');"></div>
<div class="information">{{__('msg.kategori')}}: {{\App\GuidesCategory::query()->where('id', '=', \App\Guide::query()->where('id','=', $new->arrangement_id)->first()->guide_category_id)->first()->guidesCategoryName}}</div>
<div class="information">{{__('msg.kategori')}} <span class="dot"></span> {{\App\GuidesCategory::query()->where('id', '=', \App\Guide::query()->where('id','=', $new->arrangement_id)->first()->guide_category_id)->first()->guidesCategoryName}}</div>
@endif
<div class="container" style="margin-top: 8px;">