Ich habe eine Web-App mit Backbone.js gebaut und es hat viele Anrufe zu einem RESTful Service und es funktioniert wie ein Charme.Service-Arbeiter blockiert Backbonejs?
Ich habe versucht, einen ServiceWorker hinzuzufügen, um alle vorherigen Anrufe zwischenzuspeichern, damit sie offline verfügbar sind.
Was ich eigentlich, dass die Anrufe ich zum ersten Mal tun, mit diesem Fehler sterben:
Failed to load resource: net::ERR_FAILED
jedoch auf Seite neu laden, erhalte ich es Daten im Cache gespeichert
Mein Service Arbeiter holen:
self.addEventListener('fetch', function(e) {
// e.respondWidth Responds to the fetch event
e.respondWith(
// Check in cache for the request being made
caches.match(e.request)
.then(function(response) {
// If the request is in the cache
if (response) {
console.log("[ServiceWorker] Found in Cache", e.request.url, response);
// Return the cached version
return response;
}
// If the request is NOT in the cache, fetch and cache
var requestClone = e.request.clone();
fetch(requestClone)
.then(function(response) {
if (!response) {
console.log("[ServiceWorker] No response from fetch ")
return response;
}
var responseClone = response.clone();
// Open the cache
caches.open(cacheName).then(function(cache) {
// Put the fetched response in the cache
cache.put(e.request, responseClone);
console.log('[ServiceWorker] New Data Cached', e.request.url);
// Return the response
return response;
}); // end caches.open
console.log("Response is.. ?", response)
return response;
})
.catch(function(err) {
console.log('[ServiceWorker] Error Fetching & Caching New Data', err);
});
}) // end caches.match(e.request)
); // end e.respondWith
});
edit: ich glaube nicht, dass es einen Bedarf für eine ist ny Backbone.js Web-App-Code. Ich verwende die fetch
Methode von Backbone.js Modellen und Sammlungen. Anrufe wie https://jsonplaceholder.typicode.com/posts/1 und https://jsonplaceholder.typicode.com/posts/2
werden wiederholen diese Fehler zeigen auf erstes Mal. nachdem ich die Seite aktualisiert habe, habe ich diese Information ohne zu fragen. alles aus dem Cache. und alle anderen Wunsch, dass ich immer noch nicht tun, bleiben Fehler
Geben Sie bitte ein [MCVE]. –
Ich habe bearbeitet: Ich denke nicht, dass es einen Backbone.js Web App Code benötigt. Ich verwende die Methode fetch von Backbone.js Modellen und Sammlungen. Aufrufe wie https: //jsonplaceholder.typicode.com/posts/1 und https://jsonplaceholder.typicode.com/posts/2 wird wieder zeigen diesen Fehler beim ersten Mal. nachdem ich die Seite aktualisiert habe, habe ich diese Information ohne zu fragen. alles aus dem Cache. und alle anderen Anfragen, die ich noch nicht gemacht habe, werden Fehler bleiben – Gugu