1

Je crée une application Web Angular qui implémente à la fois AppCache et les travailleurs du service. J'ai des techniciens de service activés sur mon application, donc mon application fonctionne bien sur tous les navigateurs sauf Internet Explorer. J'ai besoin d'un moyen de désactiver les travailleurs de service si l'application est exécutée sur IE. Je suis à la recherche dans l'application de détecter quel navigateur il est exécuté, et d'invoquer du code pour désactiver les travailleurs de service ou quelque chose du genre. Si quelqu'un a de l'expérience à ce sujet, j'apprécierais quelques conseils.Comment pouvez-vous désactiver les techniciens de maintenance lors de l'utilisation d'Internet Explorer?

Répondre

1

La façon la plus courante de vérifier la compatibilité du navigateur avec le Service des travailleurs est la suivante:

if ('ServiceWorker' in navigator) { 
    // supported 
} else { 
    // not supported 
} 

La plupart du temps, vous n'avez pas besoin de vérifier explicitement quel navigateur l'utilisateur actuel fonctionne depuis ce test vous donne assez d'informations. Donc, ne vérifiez pas l'UA dans ce cas simple.

Il convient de noter, cependant, que différentes versions de Firefox et de Chrome prennent en charge un nombre différent de fonctionnalités de Service Worker. Cela signifie que même si le test réussit, il est possible d'essayer d'exécuter un code spécifique à SW qui provoque une erreur de la part du navigateur puisque les API ou autres n'ont pas été implémentées dans la version du navigateur actuellement utilisée. Dans ces situations, une inspection plus attentive des capacités du navigateur est requise.

+0

juste pour ajouter à cela. Si les techniciens de maintenance sont pris en charge, la mémoire cache du service worker est utilisée, même si l'application appcache est utilisée. Cela signifie que le service worker est une amélioration progressive et appCache fonctionnera comme prévu dans IE. En guise de note complémentaire, vous ne devriez plus construire des choses pour IE. La fenêtre de support de Windows 7 est maintenant passée. IE n'existe que pour les applications d'entreprise héritées qui n'ont pas encore été mises à jour :) –