Toutefois, il est plutôt peu fiable Sans parler du fait qursquoil 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 nrsquoinclut pas IE9 ou plus tôt.
LrsquoAPI visibilité indique lrsquoétat actuel de la page, si elle est affichée, visible, invisible, etc. Bien que les implémentations de lrsquoAPI de visibilité soient courantes, elles sont clairement basées sur des préfixes spécifiques au fournisseur. Ce nrsquoest qursquoune autre preuve que la responsabilité de la personne qui a créé le navigateur drsquoutiliser des préfixes spécifiques au fournisseur nous rend fous. Heureusement, lrsquoAPI 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 lrsquoajouter 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 lemballage de visibilité dans les deux prochaines sections, je vais montrer deux façons simples de mettre en œuvre lemballage de visibilité pour résoudre les deux problèmes que jrsquoai discutés dans lrsquointroduction de cet article. Je nrsquoafficherai ces deux exemples que dans JavaScript. Remarque: Assurez qursquoils 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. Crsquoest simple. regardez lrsquoexemple de code, verrez qursquoun événement srsquoexé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 lemballage 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 nrsquoest 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 lrsquoonglet navigateur actif. Par contre, si quelqursquoun ouvre une page dans un onglet inactif, la vidéo ne démarre pas tant que lrsquoonglet nrsquoest 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 lrsquoexemple 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, crsquoest bien, mais si quelqursquoun ouvre la page, lit pendant cinq minutes, puis laisse lrsquoonglet srsquoouvrir mais nrsquoest pas actif pendant une journée, votre serveur reçoit plus de 8000 requêtes inutiles. Même si crsquoest
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 lrsquoAPI de visibilité dont jrsquoai discuté à lrsquoétape précédente peut également être utilisé au lieu de setinterval, mais la fonction de rappel ne srsquoexécute que lorsque lrsquoonglet courant est visible. Voici le dernier exemple, reconstruit pour fonctionner seulement lorsque lrsquoonglet 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 nrsquoest pas visible. En plus de réduire lrsquoutilisation des ressources sur le serveur et lrsquoordinateur du visiteur, il est préférable que la fonction de rappel fonctionne dès que lrsquoonglet 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 nrsquoest 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 & 39 Optimiser l’api de visibilité pour le développement dynamique de WordPress