1. Bienvenue
Dans cet atelier, vous allez ajouter une réponse de route de streaming à une application Web existante pour améliorer les performances. Il s'agit du septième d'une série d'ateliers de programmation complémentaires pour l'atelier sur les progressive web apps. L'atelier de programmation précédent était Exploiter tout le potentiel de votre PWA. Il reste un atelier de programmation dans cette série.
Points abordés
- Ajouter une réponse de streaming à un service worker
À savoir
- JavaScript
Ce dont vous avez besoin
- Navigateur compatible avec les service workers et les flux
2. Préparer l'atelier
Commencez par cloner ou télécharger le code de démarrage nécessaire pour effectuer cet atelier de programmation :
Si vous clonez le dépôt, assurez-vous d'être dans la branche pwa06--service-worker-includes
. Le fichier ZIP contient également le code de cette branche.
Ce code de base nécessite Node.js 14 ou version ultérieure. Une fois le code disponible, exécutez npm ci
à partir de la ligne de commande dans le dossier du code afin d'installer toutes les dépendances dont vous aurez besoin. Ensuite, exécutez npm start
pour démarrer le serveur de développement de l'atelier de programmation.
Le fichier README.md
du code source fournit une explication pour tous les fichiers distribués. De plus, voici les principaux fichiers existants que vous utiliserez tout au long de cet atelier de programmation :
Fichiers clés
js/preview.js
: prévisualiser le fichier JavaScript de la pageservice-worker.js
: fichier service worker de la PWA
3. Aperçu du streaming
La page d'aperçu peut être divisée en trois parties distinctes : l'en-tête, le corps compilé et le pied de page. Actuellement, le corps compilé est rendu côté client, mais il n'y a aucune raison pour qu'il le soit. Transférons-le vers le service worker.
Pour compiler le corps, une recherche de contenu asynchrone est effectuée. Étant donné que le travail asynchrone dans une réponse de navigation est coûteux, c'est une excellente occasion de diffuser d'abord le contenu connu au navigateur.
Pour ce faire, commencez par effacer le contenu de js/preview.js
afin de vous assurer qu'il ne compile plus. Ensuite, dans service-worker.js
, procédez comme suit :
- Importer l'exportation nommée
strategy
depuisworkbox-streams
en tant questreamsStrategy
- Importer l'exportation nommée
openDB
à partir deidb
et importer l'exportation nomméemarked
à partir demarked
- Avant l'enregistrement de la route pour les navigations, ajoutez un enregistrement de route
- Il doit vérifier que le
pathname
de l'URL est/preview
. - Il doit utiliser une stratégie de streaming qui
- Répondez avec le contenu de
preview/index.html
via la zone de contenu de la balisemain
. - Répondez avec une fonction qui ouvre l'IndexedDB
settings-store
, récupère le contenu du magasin d'objetssettings
et renvoie la version rendue en Markdown de ce contenu. - Répondez avec les balises de fermeture
main
,body
ethtml
.
- Répondez avec le contenu de
- Il doit vérifier que le
Une fois la réponse de streaming en place, revenez en arrière et ouvrez l'aperçu du site dans votre navigateur. Vous devriez constater que le contenu de la page est désormais affiché directement à partir du service worker, sans aucun code côté client.
4. Félicitations !
Vous avez appris à rendre votre application Web hors connexion à l'aide des service workers et de l'API Cache Storage.
Le prochain atelier de programmation de la série est Utiliser des nœuds de calcul.