■
This commit is contained in:
		| @ -65,7 +65,7 @@ if ($grille->valid()) { | |||||||
|  |  | ||||||
| <head> | <head> | ||||||
|     <meta charset="utf-8"> |     <meta charset="utf-8"> | ||||||
|     <title>Mots croisés</title> |     <title>MOTS■CROISÉS</title> | ||||||
|     <link rel="stylesheet" href="style.css"> |     <link rel="stylesheet" href="style.css"> | ||||||
|     <link rel="icon" href="favicon.svg"> |     <link rel="icon" href="favicon.svg"> | ||||||
|     <meta name="viewport" content="width=device-width, initial-scale=1.0"> |     <meta name="viewport" content="width=device-width, initial-scale=1.0"> | ||||||
| @ -100,7 +100,7 @@ if ($grille->valid()) { | |||||||
|                 </tbody> |                 </tbody> | ||||||
|             </table> |             </table> | ||||||
|         </h1> |         </h1> | ||||||
|         <h1 class="small width">Mots croisés</h1> |         <h1 class="small width">Mots■croisés</h1> | ||||||
|         <div class="grille-et-definitions"> |         <div class="grille-et-definitions"> | ||||||
|             <?php if ($grille->valid()): ?> |             <?php if ($grille->valid()): ?> | ||||||
|                 <div class="grille"> |                 <div class="grille"> | ||||||
| @ -133,7 +133,7 @@ if ($grille->valid()) { | |||||||
|                 </div> |                 </div> | ||||||
|                 <div class="definitions horizontales"> |                 <div class="definitions horizontales"> | ||||||
|                     <h2>Horizontalement</h2> |                     <h2>Horizontalement</h2> | ||||||
|                     <ol> |                     <ol type="1"> | ||||||
|                         <?php foreach ($definitions_horizontales as $y => $definitions): ?> |                         <?php foreach ($definitions_horizontales as $y => $definitions): ?> | ||||||
|                             <li> |                             <li> | ||||||
|                                 <?php if (count($definitions) == 1): ?> |                                 <?php if (count($definitions) == 1): ?> | ||||||
| @ -184,6 +184,7 @@ if ($grille->valid()) { | |||||||
|     </form> |     </form> | ||||||
|  |  | ||||||
|     <script src="script.js"></script> |     <script src="script.js"></script> | ||||||
|  |     <script>navigator?.serviceWorker.register('service-worker.js')</script> | ||||||
| </body> | </body> | ||||||
|  |  | ||||||
| </html> | </html> | ||||||
							
								
								
									
										86
									
								
								service-worker.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										86
									
								
								service-worker.js
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,86 @@ | |||||||
|  | /* | ||||||
|  | Copyright 2015, 2019, 2020 Google LLC. All Rights Reserved. | ||||||
|  |  Licensed under the Apache License, Version 2.0 (the "License"); | ||||||
|  |  you may not use this file except in compliance with the License. | ||||||
|  |  You may obtain a copy of the License at | ||||||
|  |  http://www.apache.org/licenses/LICENSE-2.0 | ||||||
|  |  Unless required by applicable law or agreed to in writing, software | ||||||
|  |  distributed under the License is distributed on an "AS IS" BASIS, | ||||||
|  |  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||||
|  |  See the License for the specific language governing permissions and | ||||||
|  |  limitations under the License. | ||||||
|  | */ | ||||||
|  |  | ||||||
|  | // Incrementing OFFLINE_VERSION will kick off the install event and force | ||||||
|  | // previously cached resources to be updated from the network. | ||||||
|  | const OFFLINE_VERSION = 1; | ||||||
|  | const CACHE_NAME = "offline"; | ||||||
|  | // Customize this with a different URL if needed. | ||||||
|  | const OFFLINE_URL = document.location.href; | ||||||
|  |  | ||||||
|  | self.addEventListener("install", (event) => { | ||||||
|  |   event.waitUntil( | ||||||
|  |     (async () => { | ||||||
|  |       const cache = await caches.open(CACHE_NAME); | ||||||
|  |       // Setting {cache: 'reload'} in the new request will ensure that the | ||||||
|  |       // response isn't fulfilled from the HTTP cache; i.e., it will be from | ||||||
|  |       // the network. | ||||||
|  |       await cache.add(new Request(OFFLINE_URL, { cache: "reload" })); | ||||||
|  |     })() | ||||||
|  |   ); | ||||||
|  |   // Force the waiting service worker to become the active service worker. | ||||||
|  |   self.skipWaiting(); | ||||||
|  | }); | ||||||
|  |  | ||||||
|  | self.addEventListener("activate", (event) => { | ||||||
|  |   event.waitUntil( | ||||||
|  |     (async () => { | ||||||
|  |       // Enable navigation preload if it's supported. | ||||||
|  |       // See https://developers.google.com/web/updates/2017/02/navigation-preload | ||||||
|  |       if ("navigationPreload" in self.registration) { | ||||||
|  |         await self.registration.navigationPreload.enable(); | ||||||
|  |       } | ||||||
|  |     })() | ||||||
|  |   ); | ||||||
|  |  | ||||||
|  |   // Tell the active service worker to take control of the page immediately. | ||||||
|  |   self.clients.claim(); | ||||||
|  | }); | ||||||
|  |  | ||||||
|  | self.addEventListener("fetch", (event) => { | ||||||
|  |   // We only want to call event.respondWith() if this is a navigation request | ||||||
|  |   // for an HTML page. | ||||||
|  |   if (event.request.mode === "navigate") { | ||||||
|  |     event.respondWith( | ||||||
|  |       (async () => { | ||||||
|  |         try { | ||||||
|  |           // First, try to use the navigation preload response if it's supported. | ||||||
|  |           const preloadResponse = await event.preloadResponse; | ||||||
|  |           if (preloadResponse) { | ||||||
|  |             return preloadResponse; | ||||||
|  |           } | ||||||
|  |  | ||||||
|  |           // Always try the network first. | ||||||
|  |           const networkResponse = await fetch(event.request); | ||||||
|  |           return networkResponse; | ||||||
|  |         } catch (error) { | ||||||
|  |           // catch is only triggered if an exception is thrown, which is likely | ||||||
|  |           // due to a network error. | ||||||
|  |           // If fetch() returns a valid HTTP response with a response code in | ||||||
|  |           // the 4xx or 5xx range, the catch() will NOT be called. | ||||||
|  |           console.log("Fetch failed; returning offline page instead.", error); | ||||||
|  |  | ||||||
|  |           const cache = await caches.open(CACHE_NAME); | ||||||
|  |           const cachedResponse = await cache.match(OFFLINE_URL); | ||||||
|  |           return cachedResponse; | ||||||
|  |         } | ||||||
|  |       })() | ||||||
|  |     ); | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   // If our if() condition is false, then this fetch handler won't intercept the | ||||||
|  |   // request. If there are any other fetch handlers registered, they will get a | ||||||
|  |   // chance to call event.respondWith(). If no fetch handlers call | ||||||
|  |   // event.respondWith(), the request will be handled by the browser as if there | ||||||
|  |   // were no service worker involvement. | ||||||
|  | }); | ||||||
		Reference in New Issue
	
	Block a user