Explorez l'API de visibilité des pages HTML5
Auparavant, nos navigateurs n'avaient pas de fonctionnalité de navigation par onglets, mais aujourd'hui, lorsque vous regardez tous les navigateurs disponibles, nous pouvons voir que tous les navigateurs offrent cette fonctionnalité. En tant que programmeur, j'ai généralement 10 à 15 onglets ouverts à la fois, et parfois ce nombre dépasse 25 à 30.
Pourquoi utiliser cette API ?
Auparavant, il n'existait aucun moyen de déterminer quel onglet était actif et quel onglet était actif, mais avec l'API de visibilité HTML5, nous pouvons détecter si un visiteur consulte notre page Web.
Dans ce tutoriel, nous apprendrons comment gérer l'API de visibilité HTML5 et une démonstration simple pour découvrir l'état de la page. Dans cette démo, nous modifierons le titre du document en fonction de l'état de visibilité de la page.
Vérifier l'état de visibilité de la page
Avec le lancement de cette API, nous accueillons deux nouvelles propriétés de document qui remplissent deux fonctions différentes. Le premier est document.visibilityState
,第二个是 document.hidden
.
document.visibilityState
contient quatre valeurs différentes comme suit :
- Masquer : La page n'est visible sur aucun écran
-
Pré-rendu : La page se charge hors écran et est invisible pour l'utilisateur
-
Visible : Page visible
-
Déchargé : La page est sur le point d'être déchargée (l'utilisateur quitte la page en cours)
document.hidden
est une propriété booléenne qui est définie sur false si la page est visible et true si la page est masquée.
Nous pouvons désormais contrôler le comportement de notre site Web lorsqu'il est masqué aux utilisateurs.
Nous connaissions tout de suite notre propriété de disponibilité, mais il est maintenant temps d'écouter l'événement afin d'être avertis des nouvelles situations concernant la visibilité de la page. Cela se fait via l'événement visibilitychange
. Nous verrons une démonstration rapide sur la façon de gérer cet événement.
document.addEventListener('visibilitychange', function(event) { if (!document.hidden) { // The page is visible. } else { // The page is hidden. } });
Ce code n'est qu'un exemple de base d'utilisation de cet événement et de découverte de l'état actuel de la page Web. Mais juste pour que vous le sachiez, ces propriétés et méthodes doivent toutes être préfixées par le fournisseur, car ces événements et propriétés sont préfixés par le fournisseur dans certains navigateurs. Nous verrons maintenant le même code sur tous les navigateurs :
// Get Browser-Specifc Prefix function getBrowserPrefix() { // Check for the unprefixed property. if ('hidden' in document) { return null; } // All the possible prefixes. var browserPrefixes = ['moz', 'ms', 'o', 'webkit']; for (var i = 0; i < browserPrefixes.length; i++) { var prefix = browserPrefixes[i] + 'Hidden'; if (prefix in document) { return browserPrefixes[i]; } } // The API is not supported in browser. return null; } // Get Browser Specific Hidden Property function hiddenProperty(prefix) { if (prefix) { return prefix + 'Hidden'; } else { return 'hidden'; } } // Get Browser Specific Visibility State function visibilityState(prefix) { if (prefix) { return prefix + 'VisibilityState'; } else { return 'visibilityState'; } } // Get Browser Specific Event function visibilityEvent(prefix) { if (prefix) { return prefix + 'visibilitychange'; } else { return 'visibilitychange'; } }
Nous avons toutes les propriétés du préfixe du navigateur et les événements sont prêts à être appliqués. Nous allons maintenant modifier le code précédent en conséquence.
// Get Browser Prefix var prefix = getBrowserPrefix(); var hidden = hiddenProperty(prefix); var visibilityState = visibilityState(prefix); var visibilityEvent = visibilityEvent(prefix); document.addEventListener(visibilityEvent, function(event) { if (!document[hidden]) { // The page is visible. } else { // The page is hidden. } });
Où pouvons-nous utiliser cette API ?
Nous pouvons envisager d'utiliser cette API dans de nombreux scénarios différents.
- Supposons que vous soyez sur votre tableau de bord et que la page interroge à intervalles réguliers (disons deux minutes) les détails d'un flux RSS ou d'une API. Par conséquent, nous pouvons limiter les appels au flux RSS ou à l'API si la page n'est pas visible par l'utilisateur (c'est-à-dire que l'utilisateur ne consulte pas réellement la page).
- Pour le curseur d'image. Nous pouvons limiter le mouvement de l'image du curseur lorsque la page est masquée.
- De la même manière, nous pouvons afficher une notification HTML uniquement lorsque la page est masquée à l'utilisateur.
Jusqu'à présent, nous avons vu le code utilisant l'API HTML5 Page Visibility, il est temps de prendre des mesures immédiates.
Démo
- Démo 1 : cette démo montre comment utiliser l'API Page Visibility pour modifier le titre de la page. Voir la démo
- Démo 2 : Cette démo montre comment restreindre les données d'interrogation du serveur lorsque la page est inactive.
Dans cette démo, nous verrons comment restreindre l'interrogation du serveur pour obtenir les dernières informations, mais uniquement pendant que l'utilisateur consulte la page. Je suppose que jQuery est déjà inclus dans votre page. Ici, nous allons simplement incrémenter le décompte, mais cela pourrait être remplacé par une véritable interrogation du serveur.
HTML
<!-- This element will show updated count --> <h1 id="valueContainer">0</h1>
JavaScript
<script type="text/javascript"> // Get Browser Prefix var prefix = getBrowserPrefix(); var hidden = hiddenProperty(prefix); var visibilityState = visibilityState(prefix); var visibilityEvent = visibilityEvent(prefix); var timer = null; function increaseVal() { var newVal = parseInt($('#valueContainer').text()) + parseInt(1); $('#valueContainer').text(newVal); document.title = newVal + ': Running'; timer = setTimeout(function() { increaseVal(); }, 1); } // Visibility Change document.addEventListener(visibilityEvent, function(event) { if (document[hidden]) { clearTimeout(timer); var val = parseInt($('#valueContainer').text()); document.title = val + ': Pause'; } else { increaseVal(); } }); increaseVal(); </script>
Vue démo
Prise en charge du navigateur
Si vous souhaitez vérifier la prise en charge de cette API par le navigateur, je vous recommande de consulter Puis-je l'utiliser ? . Mais pour trouver la prise en charge du navigateur par programmation, je vous recommande de lire cet article pour détecter la prise en charge de diverses fonctionnalités HTML5. Jusqu'à présent, nous bénéficions d'un bon support pour cette API dans presque tous les navigateurs majeurs et les plus récents.
Conclusion
Je dirais que nous avons une très belle API qui se compose uniquement de deux propriétés et d'un événement. De cette façon, il peut être facilement intégré à vos applications existantes, ce qui peut avoir un impact positif sur votre expérience utilisateur. Enfin, nous pouvons désormais contrôler le comportement de nos sites lorsqu'ils sont masqués aux utilisateurs.
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!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

WordPress est facile pour les débutants de commencer. 1. Après se connecter à l'arrière-plan, l'interface utilisateur est intuitive et le tableau de bord simple fournit tous les liens de fonction nécessaires. 2. Les opérations de base incluent la création et l'édition de contenu. L'éditeur WYSIWYG simplifie la création de contenu. 3. Les débutants peuvent étendre les fonctions du site Web via des plug-ins et des thèmes, et la courbe d'apprentissage existe mais peut être maîtrisée par la pratique.

Peut apprendre WordPress dans les trois jours. 1. Master les connaissances de base, telles que les thèmes, les plug-ins, etc. 2. Comprenez les fonctions principales, y compris les principes d'installation et de travail. 3. Apprenez l'utilisation de base et avancée à travers des exemples. 4. Comprendre les techniques de débogage et les suggestions d'optimisation des performances.

WordPressisGoodForvirontuallyAnyWebprojectDuetOtsSversatityAsacms.itexcelsin: 1) une convivialité, permettant à la manière

Wix convient aux utilisateurs qui n'ont aucune expérience de programmation, et WordPress convient aux utilisateurs qui souhaitent plus de capacités de contrôle et d'extension. 1) Wix fournit des éditeurs de glisser-déposer et des modèles riches, ce qui facilite la création d'un site Web rapidement. 2) En tant que CMS open source, WordPress possède un énorme écosystème communautaire et plug-in, soutenant la personnalisation et l'expansion approfondies.

WordPress lui-même est gratuit, mais il en coûte supplémentaire à utiliser: 1. WordPress.com propose un package allant du gratuit à payant, avec des prix allant de quelques dollars par mois à des dizaines de dollars; 2. WordPress.org nécessite l'achat d'un nom de domaine (10-20 dollars américains par an) et des services d'hébergement (5-50 dollars américains par mois); 3. La plupart des plug-ins sont gratuits, et le prix payant se situe entre des dizaines et des centaines de dollars; En choisissant le bon service d'hébergement, en utilisant des plug-ins et des thèmes raisonnablement, et en maintenant et en maintenant régulièrement, le coût de WordPress peut être efficacement contrôlé et optimisé.

Les gens choisissent d'utiliser WordPress en raison de son pouvoir et de sa flexibilité. 1) WordPress est un CMS open source avec une forte facilité d'utilisation et une évolutivité, adaptée à divers besoins en site Web. 2) Il a des thèmes et des plugins riches, un énorme écosystème et un fort soutien communautaire. 3) Le principe de travail de WordPress est basé sur des thèmes, des plug-ins et des fonctions de base, et utilise PHP et MySQL pour traiter les données, et prend en charge l'optimisation des performances.

WordPress est un système de gestion de contenu (CMS). Il fournit une gestion de contenu, une gestion des utilisateurs, des thèmes et des capacités de plug-in pour prendre en charge la création et la gestion du contenu du site Web. Son principe de travail comprend la gestion des bases de données, les systèmes de modèles et l'architecture du plug-in, adaptés à une variété de besoins, des blogs aux sites Web d'entreprise.

La version principale de WordPress est gratuite, mais d'autres frais peuvent être engagés pendant l'utilisation. 1. Les noms de domaine et les services d'hébergement nécessitent un paiement. 2. Des thèmes et des plug-ins avancés peuvent être facturés. 3. Les services professionnels et les fonctionnalités avancées peuvent être facturés.
