2017-10-03 1 views
0

Est-ce que nous avons besoin de vérifier chaque API (Cache API, fetch API, IndexedDB API et Push API) soutenir individuellement dans le navigateur avant de mettre en œuvre travailleur de service ou le contrôle de services le travailleur est-il suffisant? Quelle est la meilleure pratique?Est-ce que la vérification du cache Api, chercher API et API IndexedDB contrôle de soutien individuel est nécessaire avant la mise en œuvre serviceWorker

signifie

if('Cache' in window) {} 
if ('fetch' in window) {} 
if('indexedDB' in window) {} 
if('navigator' in window) {} 
if(navigator.onLine){} 

OU

if('serviceWorker in navigator)

est suffisant?

Qu'ai-je supposé que la méthode ultérieure appellera en interne les anciennes méthodes afin de vérifier le service worker?

Est-ce une supposition correcte?

sinon, quelle est la valeur par défaut et ce que vous devez vérifier?

+1

"Qu'est-ce que j'ai supposé que la méthode ultérieure vérifiera fetch, push, Cache avant de vérifier le service worker?" Pouvez-vous élaborer ce que vous voulez dire ici? if ('serviceWorker dans le navigateur) est contenu dans le fichier de registre de l'agent de service et est donc visible avant que le code de l'agent de service ne soit visible. Autrement dit, aucun événement push/catch/fetch ne sera déclenché avant de vérifier si le navigateur supporte SW. –

Répondre

0

si ('serviceWorker' dans le navigateur) est suffisant.

Tous les navigateurs qui implémentent l'API SW implémentent également les API Fetch, Caches et IndexedDB.

Il y a quelques pièges, cependant. Les dernières versions de Chrome et FF supportent async/await mais par exemple Samsung Internet ne le fait pas. SI prend en charge SW, donc en utilisant async/await dans les lancers SW dans SI.