Ich erstelle einen Service-Mitarbeiter für meine WordPress-Installation. Ich definiere eine Liste von Dateien, die in meiner sw.js-Datei zwischengespeichert werden, aber beim Aktualisieren der Seite scheint WordPress in viele zusätzliche Dateien zu laden.Ich füge WordPress einen Service-Mitarbeiter hinzu, kann aber nicht verhindern, dass Wordpress-Dateien zum Cache hinzugefügt werden
Dies ist normalerweise kein Problem, aber es bedeutet, dass einige der Admin-Dateien zwischengespeichert werden, was die Benutzer daran hindert, Inhalte zu bearbeiten.
Hier ist der Code. Die Datei sw.js befindet sich im Stammverzeichnis von Wordpress. Die Datei mit dem Namen "test.css" befindet sich ebenfalls zu Testzwecken im Stammverzeichnis.
Jede Hilfe - sehr geschätzt!
-Steve
(function() {
'use strict';
var filesToCache = [
'test.css'
];
var staticCacheName = 'pages-cache-v1.0.1';
self.addEventListener('install', function(event) {
console.log('Attempting to install service worker and cache static assets');
event.waitUntil(
caches.open(staticCacheName)
.then(function(cache) {
console.log(filesToCache);
return cache.addAll(filesToCache);
})
);
});
self.addEventListener('fetch', function(event) {
//console.log('Fetch event for ', event.request.url);
event.respondWith(
caches.match(event.request).then(function(response) {
if (response) {
//console.log('Found ', event.request.url, ' in cache');
return response;
}
//console.log('Network request for ', event.request.url);
return fetch(event.request).then(function(response) {
return caches.open(staticCacheName).then(function(cache) {
if (event.request.url.indexOf('test') < 0) {
cache.put(event.request.url, response.clone());
}
return response;
});
});
}).catch(function(error) {
console.log('Error, ', error);
})
);
});
self.addEventListener('activate', function(event) {
//console.log('Activating new service worker...');
var cacheWhitelist = [staticCacheName];
event.waitUntil(
caches.keys().then(function(cacheNames) {
return Promise.all(
cacheNames.map(function(cacheName) {
console.log(cacheNames);
if (cacheWhitelist.indexOf(cacheName) === -1) {
return caches.delete(cacheName);
}
})
);
})
);
});
})();
Vielen Dank. Der Link oben hatte einige großartige Informationen. Das Problem war mit der Abruffunktion zu tun. –