Maison > interface Web > js tutoriel > Nouvelles connaissances JavaScript : service Workers

Nouvelles connaissances JavaScript : service Workers

阿神
Libérer: 2017-01-24 14:30:41
original
1401 Les gens l'ont consulté

La technologie front-end se rapproche de la technologie de bureau, et l'une des plus importantes est celle des service Workers, qui permettent aux applications HTML de fonctionner hors ligne. Cet article illustrera cette technologie avec un simple code de cas. Outils que j'utilise :

1. La version du navigateur est chrome 55

2 Système serveur : Node 5.0

Nous devons préparer 3 fichiers :

touch  index.html b.html sw.js
Copier après la connexion

Le contenu du fichier index.html est :

  <script>
    if (&#39;serviceWorker&#39; in navigator) {
      navigator.serviceWorker.register(&#39;/sw.js&#39;);
    }    </script>
Copier après la connexion

Il enregistre un service worker, le nom du fichier est sw.js, un fichier de code JavaScript. Le fichier vraiment clé est donc sw.js, son contenu est :

   const cacheName = &#39;v1::static&#39;;    self.addEventListener(&#39;install&#39;, e => {
      e.waitUntil(
        caches.open(cacheName).then(cache => {          return cache.addAll([            &#39;/&#39;,
          ]).then(() => self.skipWaiting());
        })
      );
    });    self.addEventListener(&#39;fetch&#39;, event => {
      event.respondWith(
        caches.open(cacheName).then(cache => {          return cache.match(event.request).then(res => {            return res || fetch(event.request)
          });
        })
      );
    });
Copier après la connexion

En tant qu'événement, l'installation sera appelée lorsque ServiceWorker est chargé pour la première fois. Ici, vous pouvez effectuer un travail d'initialisation, A. le travail typique consiste à charger dans le cache les fichiers qui seront nécessaires en mode hors connexion. Ici, nous spécifions "/", donc tout contenu sera mis en cache.

Le deuxième événement est fetch, qui est appelé lors de l'accès à des ressources distantes. Une correspondance peut être faite ici. S'il y a une ressource dans le cache, la ressource dans le cache sera renvoyée, sinon elle sera récupérée à distance.

Le troisième fichier b.html est un fichier pour démontrer l'effet hors ligne. Le contenu est :

<h1>serviceWorker B</h1>
Copier après la connexion

Bien que vous puissiez installer le serveur http et l'exécuter dans le chemin actuel :

npm i http-server 
    http-server
Copier après la connexion

Accès :

http://localhost:8080/index.html
Copier après la connexion

et

http://localhost:8080/b.html
Copier après la connexion

Ensuite, fermez le serveur http et visitez à nouveau

 http://localhost:8080/b.html
Copier après la connexion

et vous pourrez accédez-y ~ , et c'est l'effet de la mise en œuvre hors ligne.

Eh bien, si vous souhaitez vérifier l'état de fonctionnement des techniciens de service, vous pouvez également utiliser l'URL suivante :

 chrome://inspect/#service-workers
Copier après la connexion

Vous pouvez voir plus de détails comme celui-ci :

 chrome://serviceworker-internals/
Copier après la connexion

Ici, vous pouvez démarrer, annuler l'inscription et d'autres opérations.

Vous pouvez vérifier sa mise en œuvre, ce n'est pas si optimiste :

http://caniuse.com/#feat=serviceworkers
Copier après la connexion
Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal