我已經使用Backbone.js構建了一個Web應用程序,並且它有很多打電話給REST風格的服務,它的功能就像一個魅力。服務人員塊backbonejs?
我試着添加一個ServiceWorker來緩存所有以前的調用,以便它們可以脫機使用。
我實際得到的是,我是第一次做的呼籲,死亡與此錯誤:
Failed to load resource: net::ERR_FAILED
但是在頁面重載,我得到它的緩存數據
我的服務人員獲取:
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
});
編輯: 我不認爲有必要的ny Backbone.js網絡應用代碼。 我使用Backbone.js模型和集合中的fetch
方法。 電話像 https://jsonplaceholder.typicode.com/posts/1 和 https://jsonplaceholder.typicode.com/posts/2
將重播顯示在第一次此錯誤。刷新頁面後,我確實沒有請求這些信息。全部來自緩存。 和所有其他的要求,我仍然沒有做,會留下錯誤
請包括[MCVE。 –
我編輯:我不認爲有任何Backbone.js網絡應用程序代碼的需要。我使用Backbone.js模型和集合中的獲取方法。像https://jsonplaceholder.typicode這樣的調用。com/posts/1和https://jsonplaceholder.typicode.com/posts/2 將在第一次播放時顯示此錯誤。刷新頁面後,我確實沒有請求這些信息。全部來自緩存。和所有其他請求,我仍然沒有做,將保持錯誤 – Gugu