Переглянути джерело

Editor: Cache network responses in sw.js.

Mr.doob 4 роки тому
батько
коміт
766d59e09d
1 змінених файлів з 13 додано та 20 видалено
  1. 13 20
      editor/sw.js

+ 13 - 20
editor/sw.js

@@ -244,35 +244,28 @@ self.addEventListener( 'fetch', async function ( event ) {
 
 async function networkFirst( request ) {
 
-	return fetch( request ).catch( async function () {
+	return fetch( request )
+		.then( async function ( response ) {
 
-		const cachedResponse = await caches.match( request );
+			const cache = await caches.open( cacheName );
 
-		if ( cachedResponse === undefined ) {
+			cache.put( request, response.clone() );
 
-			console.warn( '[SW] Not cached:', request.url );
+			return response;
 
-		}
+		} )
+		.catch( async function () {
 
-		return cachedResponse;
+			const cachedResponse = await caches.match( request );
 
-	} );
-
-}
+			if ( cachedResponse === undefined ) {
 
-/*
-async function cacheFirst( request ) {
+				console.warn( '[SW] Not cached:', request.url );
 
-	const cachedResponse = await caches.match( request );
+			}
 
-	if ( cachedResponse === undefined ) {
+			return cachedResponse;
 
-		console.warn( '[SW] Not cached:', request.url );
-		return fetch( request );
-
-	}
-
-	return cachedResponse;
+		} );
 
 }
-*/