Communication JavaScript entre les onglets du navigateur et Windows
La possibilité pour différents onglets ou fenêtres d'un même navigateur de communiquer entre eux est cruciale pour créer des expériences utilisateur transparentes. L'un de ces scénarios est la nécessité de synchroniser la lecture audio sur plusieurs onglets, illustrée dans le cas d'un site Web avec un lecteur de musique.
Méthodes de communication fiables
Pour faciliter des communication entre les onglets du navigateur et les fenêtres, localStorage s'est imposé comme une solution privilégiée. Implémenté dans tous les navigateurs modernes, localStorage fournit un stockage persistant pour les paires clé-valeur comme un cookie. Il présente cependant l'avantage d'être accessible par tous les onglets du navigateur.
Communication basée sur les événements
La clé de la communication en temps réel réside dans l'événement de stockage , qui se déclenche chaque fois que des modifications sont apportées à localStorage. Lorsqu'un onglet modifie la valeur stockée, il diffuse l'événement à tous les autres onglets. Cela permet aux onglets d'écouter de tels événements et de répondre en conséquence.
Exemple de solution
Pour implémenter la communication à l'aide de localStorage, un onglet peut écrire sur une clé spécifique pour indiquer que l'audio la lecture a commencé. D'autres onglets à l'écoute des modifications apportées à cette clé peuvent mettre leurs propres lecteurs audio en pause lors de la détection de l'événement. De cette façon, lorsque l'onglet 2 démarre l'audio, l'onglet 1 peut recevoir la notification via l'événement de stockage et mettre sa propre musique en pause.
Conseils supplémentaires
Pour améliorer la robustesse de votre système de communication, pensez à utiliser une clé unique pour vos événements de stockage afin d'éviter les collisions. De plus, utilisez des gestionnaires d'événements pour gérer les événements de stockage et effectuer les actions appropriées.
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!