Maison >interface Web >js tutoriel >Les onglets d'arrière-plan de Chrome mettent-ils en pause « setTimeout » et « setInterval » ?

Les onglets d'arrière-plan de Chrome mettent-ils en pause « setTimeout » et « setInterval » ?

DDD
DDDoriginal
2024-12-08 14:42:12868parcourir

Do Chrome Background Tabs Pause `setTimeout` and `setInterval`?

Onglets d'arrière-plan Chrome : délais d'attente et intervalles en pause ?

En testant la précision de setTimeout, il a été observé que les délais d'attente s'exécutent considérablement plus lentement dans Onglets d'arrière-plan Chrome par rapport aux onglets actifs. Ce comportement n'a pas été remarqué dans Firefox ou Internet Explorer.

Suspension de l'exécution de JavaScript

Il semble que Chrome suspende ou ralentisse l'exécution de JavaScript dans les onglets non ciblés. Cela implique que les tâches en arrière-plan, telles que les vérifications périodiques du serveur à l'aide de XHR et setInterval, peuvent être interrompues. On soupçonne que setInterval présente un comportement similaire.

Solution de contournement possible

En tant que solution de contournement potentielle, les Web Workers peuvent être utilisés pour poursuivre les tâches en arrière-plan même lorsqu'un onglet est inactif. Les Web Workers sont des scripts indépendants qui s'exécutent en arrière-plan, permettant l'exécution de tâches asynchrones.

Rapport de bogues

Bien que le comportement de suspension de l'exécution de JavaScript dans les onglets en arrière-plan soit considéré comme être délibéré, cela pourrait justifier le dépôt d'un rapport de bogue s'il cause des problèmes importants. Le changement de code proposé pourrait éclairer davantage la situation.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
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