web-dev-qa-db-fra.com

L'agent de service fonctionne-t-il en arrière-plan même si le navigateur est fermé?

Je vois la notification Push pour Facebook Web en chrome uniquement lorsque je l'ouvre. Je sais que cette notification est envoyée par le biais de service worker . Je me demande si cette synchronisation en arrière-plan est activée même si le navigateur est fermé ou uniquement à l'ouverture de chrome. Seuls ces processus de synchronisation Service-worker sont démarrés et commencent à envoyer des notifications Push.

14
Jagajit Prusty

La première chose à dire est que cela dépend un peu de la plate-forme. Ma compréhension du chrome est la suivante:

Sur les plates-formes de bureau telles que Windows et Mac OS X, le navigateur doit avoir un processus d'arrière-plan en cours d'exécution pour qu'un agent de service puisse s'exécuter. Sur Mac OS X, cela est assez facile à détecter car le navigateur ne peut pas avoir de fenêtre ouverte, mais le navigateur a toujours le point rouge sous lui. 

Sur les plates-formes mobiles, il est plus facile d'écouter les événements et de les gérer efficacement. Ainsi, dans ce cas, la plate-forme peut activer le navigateur qui gérera tous les événements correspondants.

Ce qui précède s’applique à toutes les API de service.

Sur le bureau: Si le navigateur est complètement fermé , les agents de service ne peuvent ni s’exécuter ni envoyer d’événement (c.-à-d. Aucun événement Push ou synchronisation en arrière-plan)

Sur mobile: les événements seront toujours envoyés (c’est-à-dire que la synchronisation en arrière-plan sera déclenchée lorsque le périphérique de l’utilisateur se connectera et que le Push sera reçu et provoquera un événement Push).

9
Matt Gaunt

Je ne pense pas que le technicien sera capable de fonctionner si le navigateur est fermé. Parce que service-worker est capable d'envoyer une notification Push uniquement après l'ouverture du navigateur. S'il est exécuté en arrière-plan, la notification peut être envoyée même après la fermeture du navigateur.

1
Jagajit Prusty