Toutefois, il est plutôt peu fiable Sans parler du fait quamp;rsquoil ne fonctionne pas du tout dans le nouveau navigateur. Au lieu de cela, une nouvelle API de visibilité a été introduite en 2011, avec des scores de disponibilité très élevés. Cependant, il namp;rsquoinclut pas IE9 ou plus tôt.
Lamp;rsquoAPI visibilité indique lamp;rsquoétat actuel de la page, si elle est affichée, visible, invisible, etc. Bien que les implémentations de lamp;rsquoAPI de visibilité soient courantes, elles sont clairement basées sur des préfixes spécifiques au fournisseur. Ce namp;rsquoest quamp;rsquoune autre preuve que la responsabilité de la personne qui a créé le navigateur damp;rsquoutiliser des préfixes spécifiques au fournisseur nous rend fous. Heureusement, lamp;rsquoAPI de visibilité a des enveloppes qui rendent les préfixes invisibles pour nous. Dans je vais expliquer comment utiliser la visibilité. Andrey sitnik JS. Ce wrapper est très facile à utiliser et est inclus dans une licence compatible mit GPL, ce qui le rend sûr pour les projets WordPress.
Vous pouvez lamp;rsquoajouter au projet en tant que dépendance en utilisant tous les systèmes de gestion des dépendances populaires, ou pouvez le charger via CDN. Je suis sûr que avez raison. En utilisant lamp;emballage de visibilité dans les deux prochaines sections, je vais montrer deux façons simples de mettre en œuvre lamp;emballage de visibilité pour résoudre les deux problèmes que jamp;rsquoai discutés dans lamp;rsquointroduction de cet article. Je namp;rsquoafficherai ces deux exemples que dans JavaScript. Remarque: Assurez quamp;rsquoils sont correctement mis en œuvre dans le plug in ou le sujet. Exemple 1: autoplay YouTube Video YouTube fournit une API pour des vidéos à iframe. Camp;rsquoest simple. regardez lamp;rsquoexemple de code, verrez quamp;rsquoun événement samp;rsquoexécute lorsque la vidéo est chargée. Dans la fonction de rappel de cet événement, ils montrent comment lire la vidéo. Voici à quoi il ressemble:
Fonction onplayerready {
Événements Objectifs Lire la vidéo ()
} utilisez lamp;emballage de visibilité. JS, nous pouvons changer
Avec une édition très simple, la fonction de ne pas démarrer la vidéo tant que la page namp;rsquoest pas visible: Fonction onplayerready {
Visibilité Onvisible (fonction () {
Événements Objectifs Lire la vidéo ()
})
} Le comportement est le même si la page est affichée dans lamp;rsquoonglet navigateur actif. Par contre, si quelquamp;rsquoun ouvre une page dans un onglet inactif, la vidéo ne démarre pas tant que lamp;rsquoonglet namp;rsquoest pas de nouveau actif.
La même politique peut être appliquée à différentes situations. Par exemple, si utilisez un curseur, voudrez peut être commencer seulement si la page est réellement visible. Exemple 2: la fonction de synchronisation JavaScript améliorée fournit un moyen très simple de répéter la même fonction dans une plage prédéfinie. Voici lamp;rsquoexemple le plus basique: setinterval (Function () {
Console. Journal de bord (
}, 10 000) Ceci enregistre le mot
Considérons maintenant cette fonction de Timing: setinterval (Function () {
$. Get (URL, {Action:
Fonction (réponse)
Fais quelque chose.
}
)
}, 10 000) Il enverra une demande Ajax toutes les dix secondes. Chaque visionneur actif a plus de six demandes de serveur par minute. avez besoin de ce sondage continu, camp;rsquoest bien, mais si quelquamp;rsquoun ouvre la page, lit pendant cinq minutes, puis laisse lamp;rsquoonglet samp;rsquoouvrir mais namp;rsquoest pas actif pendant une journée, votre serveur reçoit plus de 8000 requêtes inutiles. Même si camp;rsquoest
Des technologies comme les websockets peuvent bien résoudre ce problème. Les plugins WordPress ou les développeurs de thèmes ne peuvent pas se fier aux websockets ou à des technologies similaires utilisées à moins qu’ils n’écrivent du Code pour un site spécifique et qu’ils sachent que les websockets sont utilisés.
Le wrapper de lamp;rsquoAPI de visibilité dont jamp;rsquoai discuté à lamp;rsquoétape précédente peut également être utilisé au lieu de setinterval, mais la fonction de rappel ne samp;rsquoexécute que lorsque lamp;rsquoonglet courant est visible. Voici le dernier exemple, reconstruit pour fonctionner seulement lorsque lamp;rsquoonglet courant est visible: visibilité. Chacun (10 000, fonction () {
$. Get (URL, {Action:
Fonction (réponse)
Fais quelque chose.
}
)
}) Lorsque la page est dans un onglet visible, elle se comporte exactement de la même façon que lorsque utilisez setinterval. Mais rien ne se passe quand la carte namp;rsquoest pas visible. En plus de réduire lamp;rsquoutilisation des ressources sur le serveur et lamp;rsquoordinateur du visiteur, il est préférable que la fonction de rappel fonctionne dès que lamp;rsquoonglet est visible.
Au fur et à mesure que nous créons de plus en plus d’applications interactives avec wordpress, nous comptons sans aucun doute sur la communication bidirectionnelle entre le client et le serveur. Il est important de trouver des moyens efficaces de le faire. Compte tenu de cela, il namp;rsquoest pas surprenant de voir Automatic comme le sponsor de socket. Me, un excellent système basé sur les noeuds. JS est utilisé pour la communication en temps réel entre le client et le serveur. Pour une utilisation plus traditionnelle de WordPress, l’api visibilité est un outil important pour améliorer l’efficacité et la disponibilité des plug ins, des thèmes et des applications. Je ai montré deux exemples simples que trouverez utiles et adaptés à vos besoins. Plus important encore, j’espère que trouverez maintenant de nouvelles façons d’ajouter une interaction bidirectionnelle à votre site WordPress.
Utiliser & Optimiser l’api de visibilité pour le développement dynamique de WordPress