File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -15,6 +15,8 @@ const CACHE_NAME = {
1515 ASSETS : 'assets-v2' ,
1616} ;
1717
18+ const offlineResponse = ( ) => new Response ( 'Offline' , { status : 503 } ) ;
19+
1820self . addEventListener ( 'install' , ( event ) => {
1921 event . waitUntil (
2022 caches . open ( CACHE_NAME . ASSETS ) . then ( ( cache ) => {
@@ -40,20 +42,21 @@ self.addEventListener('activate', (event) => {
4042} ) ;
4143
4244self . addEventListener ( 'fetch' , ( event ) => {
45+ // Navigation requests get a simple offline fallback.
4346 if ( event . request . mode === 'navigate' ) {
44- event . respondWith (
45- fetch ( event . request ) . catch ( ( ) => new Response ( 'Offline' , { status : 503 } ) )
46- ) ;
47+ event . respondWith ( fetch ( event . request ) . catch ( ( ) => offlineResponse ( ) ) ) ;
4748 return ;
4849 }
4950
51+ // Subresource requests must also resolve to a Response object.
52+ // If network fails, return cache when possible and never reject.
5053 event . respondWith (
5154 caches . match ( event . request ) . then ( ( response ) => {
5255 if ( response ) {
5356 return response ;
5457 }
5558
56- return fetch ( event . request ) ;
59+ return fetch ( event . request ) . catch ( ( ) => offlineResponse ( ) ) ;
5760 } )
5861 ) ;
5962} ) ;
You can’t perform that action at this time.
0 commit comments