Inhaltsverzeichnis
Warum diese API verwenden?
Überprüfen Sie den Sichtbarkeitsstatus der Seite
Wo können wir diese API verwenden?
Demo
Browser-Unterstützung
Fazit
Heim Web-Frontend js-Tutorial Implementieren Sie die Kontrolle der Seitensichtbarkeit mithilfe der HTML5-Seitensichtbarkeits-API

Implementieren Sie die Kontrolle der Seitensichtbarkeit mithilfe der HTML5-Seitensichtbarkeits-API

Sep 03, 2023 am 08:37 AM

重写后的标题为:利用HTML5 Page Visibility API实现页面可见性控制

Früher hatten unsere Browser keine Tab-Browsing-Funktion, aber wenn wir uns heute alle verfügbaren Browser ansehen, können wir sehen, dass alle Browser diese Funktion bieten. Als Programmierer habe ich normalerweise 10–15 Tabs gleichzeitig geöffnet, und manchmal sind es mehr als 25–30.

Warum diese API verwenden?

Früher gab es keine Möglichkeit festzustellen, welcher Tab aktiv war und welcher Tab aktiv war, aber mit der HTML5 Visibility API können wir erkennen, ob ein Besucher unsere Webseite anzeigt.

In diesem Tutorial lernen wir den Umgang mit der HTML5 Visibility API und führen eine einfache Demonstration durch, um den Status der Seite zu ermitteln. In dieser Demo ändern wir den Dokumenttitel basierend auf dem Sichtbarkeitsstatus der Seite.

Überprüfen Sie den Sichtbarkeitsstatus der Seite

Mit der Einführung dieser API begrüßen wir zwei neue Dokumenteigenschaften, die zwei verschiedene Funktionen erfüllen. Der erste ist document.visibilityState,第二个是 document.hidden.

document.visibilityState enthält vier verschiedene Werte wie folgt:

  • Ausblenden: Die Seite ist auf keinem Bildschirm sichtbar
  • Pre-Rendering: Die Seite wird außerhalb des Bildschirms geladen und ist für den Benutzer unsichtbar

  • Sichtbar: Seite sichtbar

  • Entladen: Die Seite wird gerade entladen (der Benutzer verlässt die aktuelle Seite)

document.hidden ist eine boolesche Eigenschaft, die auf „false“ gesetzt wird, wenn die Seite sichtbar ist, und auf „true“, wenn die Seite ausgeblendet ist.

Jetzt können wir steuern, wie sich unsere Website verhält, wenn sie für Benutzer verborgen ist.

Wir kannten unsere Verfügbarkeitseigenschaft sofort, aber jetzt ist es an der Zeit, sich das Ereignis anzuhören, damit wir über neue Situationen bezüglich der Sichtbarkeit der Seite informiert werden können. Dies geschieht über das visibilitychange-Event. Wir werden eine kurze Demonstration sehen, wie man mit diesem Ereignis umgeht.

document.addEventListener('visibilitychange', function(event) {
  if (!document.hidden) {
    // The page is visible.
  } else {
   // The page is hidden. 
  }
});
Nach dem Login kopieren

Dieser Code ist nur ein einfaches Beispiel für die Nutzung dieses Ereignisses und die Ermittlung des aktuellen Status der Webseite. Aber damit Sie es wissen: Diese Eigenschaften und Methoden sollten alle Herstellerpräfixe verwenden, da diese Ereignisse und Eigenschaften in einigen Browsern über Herstellerpräfixe verfügen. Jetzt sehen wir denselben Code browserübergreifend:

// 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';
  }
}

Nach dem Login kopieren

Wir verfügen über alle Browser-Präfixeigenschaften und die Ereignisse können angewendet werden. Jetzt werden wir den vorherigen Code entsprechend ändern.

// 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. 
  }
});
Nach dem Login kopieren

Wo können wir diese API verwenden?

Wir können die Verwendung dieser API in vielen verschiedenen Szenarien in Betracht ziehen.

  1. Angenommen, Sie befinden sich in Ihrem Dashboard und die Seite fragt in regelmäßigen Abständen (z. B. zwei Minuten) nach Details zu einem RSS-Feed oder einer API. Daher können wir Aufrufe des RSS-Feeds oder der API einschränken, wenn die Seite für den Benutzer nicht sichtbar ist (d. h. der Benutzer sieht die Seite nicht tatsächlich).
  2. Für Bildschieberegler. Wir können die Bewegung des Slider-Bildes begrenzen, wenn die Seite ausgeblendet ist.

  3. Auf ähnliche Weise können wir HTML-Benachrichtigungen nur anzeigen, wenn die Seite für den Benutzer verborgen ist.

Da wir bisher gesehen haben, dass der Code die HTML5 Page Visibility API verwendet, ist es an der Zeit, sofort Maßnahmen zu ergreifen.

Demo

  • Demo 1: Diese Demo zeigt, wie Sie die Page Visibility API verwenden, um den Seitentitel zu ändern. Demo ansehen
  • Demo 2: Diese Demo zeigt, wie man die Abfrage von Daten vom Server einschränkt, wenn die Seite inaktiv ist.

In dieser Demo schauen wir uns an, wie man die Abfrage der neuesten Informationen auf dem Server einschränkt, allerdings nur, während der Benutzer die Seite betrachtet. Ich gehe davon aus, dass jQuery bereits in Ihrer Seite enthalten ist. Hier erhöhen wir lediglich die Anzahl, dies könnte jedoch durch eine echte Serverabfrage ersetzt werden.

HTML

<!-- This element will show updated count -->
<h1 id="valueContainer">0</h1>
Nach dem Login kopieren

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>
Nach dem Login kopieren

Demo-Ansicht

Browser-Unterstützung

Wenn Sie die Browserunterstützung für diese API überprüfen möchten, empfehle ich Ihnen, sich „Kann ich sie verwenden?“ anzusehen. . Um die Browserunterstützung jedoch programmgesteuert zu finden, empfehle ich die Lektüre dieses Artikels, um die Unterstützung für verschiedene HTML5-Funktionen zu ermitteln. Bisher haben wir eine gute Unterstützung für diese API in fast allen gängigen und neuesten Browsern.

Fazit

Ich würde sagen, dass wir eine sehr schöne API haben, die nur aus zwei Eigenschaften und einem Ereignis besteht. Auf diese Weise lässt es sich problemlos in Ihre bestehenden Anwendungen integrieren, was sich positiv auf Ihr Benutzererlebnis auswirken kann. Endlich können wir jetzt steuern, wie sich unsere Websites verhalten, wenn sie für Benutzer verborgen sind.

Das obige ist der detaillierte Inhalt vonImplementieren Sie die Kontrolle der Seitensichtbarkeit mithilfe der HTML5-Seitensichtbarkeits-API. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Was soll ich tun, wenn ich auf den Codendruck auf Kleidungsstücke für Front-End-Thermalpapier-Quittungen stoße? Was soll ich tun, wenn ich auf den Codendruck auf Kleidungsstücke für Front-End-Thermalpapier-Quittungen stoße? Apr 04, 2025 pm 02:42 PM

Häufig gestellte Fragen und Lösungen für das Ticket-Ticket-Ticket-Ticket in Front-End im Front-End-Entwicklungsdruck ist der Ticketdruck eine häufige Voraussetzung. Viele Entwickler implementieren jedoch ...

Wer bekommt mehr Python oder JavaScript bezahlt? Wer bekommt mehr Python oder JavaScript bezahlt? Apr 04, 2025 am 12:09 AM

Es gibt kein absolutes Gehalt für Python- und JavaScript -Entwickler, je nach Fähigkeiten und Branchenbedürfnissen. 1. Python kann mehr in Datenwissenschaft und maschinellem Lernen bezahlt werden. 2. JavaScript hat eine große Nachfrage in der Entwicklung von Front-End- und Full-Stack-Entwicklung, und sein Gehalt ist auch beträchtlich. 3. Einflussfaktoren umfassen Erfahrung, geografische Standort, Unternehmensgröße und spezifische Fähigkeiten.

Entmystifizieren JavaScript: Was es tut und warum es wichtig ist Entmystifizieren JavaScript: Was es tut und warum es wichtig ist Apr 09, 2025 am 12:07 AM

JavaScript ist der Eckpfeiler der modernen Webentwicklung. Zu den Hauptfunktionen gehören eine ereignisorientierte Programmierung, die Erzeugung der dynamischen Inhalte und die asynchrone Programmierung. 1) Ereignisgesteuerte Programmierung ermöglicht es Webseiten, sich dynamisch entsprechend den Benutzeroperationen zu ändern. 2) Die dynamische Inhaltsgenerierung ermöglicht die Anpassung der Seiteninhalte gemäß den Bedingungen. 3) Asynchrone Programmierung stellt sicher, dass die Benutzeroberfläche nicht blockiert ist. JavaScript wird häufig in der Webinteraktion, der einseitigen Anwendung und der serverseitigen Entwicklung verwendet, wodurch die Flexibilität der Benutzererfahrung und die plattformübergreifende Entwicklung erheblich verbessert wird.

Wie fusioniere ich Arrayelemente mit derselben ID mit JavaScript in ein Objekt? Wie fusioniere ich Arrayelemente mit derselben ID mit JavaScript in ein Objekt? Apr 04, 2025 pm 05:09 PM

Wie fusioniere ich Array -Elemente mit derselben ID in ein Objekt in JavaScript? Bei der Verarbeitung von Daten begegnen wir häufig die Notwendigkeit, dieselbe ID zu haben ...

Wie kann man Parallax -Scrolling- und Element -Animationseffekte wie die offizielle Website von Shiseido erzielen?
oder:
Wie können wir den Animationseffekt erzielen, der von der Seite mit der Seite mit der offiziellen Website von Shiseido begleitet wird? Wie kann man Parallax -Scrolling- und Element -Animationseffekte wie die offizielle Website von Shiseido erzielen? oder: Wie können wir den Animationseffekt erzielen, der von der Seite mit der Seite mit der offiziellen Website von Shiseido begleitet wird? Apr 04, 2025 pm 05:36 PM

Diskussion über die Realisierung von Parallaxe -Scrolling- und Elementanimationseffekten in diesem Artikel wird untersuchen, wie die offizielle Website der Shiseeido -Website (https://www.shiseeido.co.jp/sb/wonderland/) ähnlich ist ...

Ist JavaScript schwer zu lernen? Ist JavaScript schwer zu lernen? Apr 03, 2025 am 12:20 AM

JavaScript zu lernen ist nicht schwierig, aber es ist schwierig. 1) Verstehen Sie grundlegende Konzepte wie Variablen, Datentypen, Funktionen usw. 2) Beherrschen Sie die asynchrone Programmierung und implementieren Sie sie durch Ereignisschleifen. 3) Verwenden Sie DOM -Operationen und versprechen Sie, asynchrone Anfragen zu bearbeiten. 4) Vermeiden Sie häufige Fehler und verwenden Sie Debugging -Techniken. 5) Die Leistung optimieren und Best Practices befolgen.

So implementieren Sie die Funktion des Ziell- und Drop-Einstellungsfunktion, ähnlich wie bei VSCODE in der Front-End-Entwicklung? So implementieren Sie die Funktion des Ziell- und Drop-Einstellungsfunktion, ähnlich wie bei VSCODE in der Front-End-Entwicklung? Apr 04, 2025 pm 02:06 PM

Erforschen Sie die Implementierung der Funktion des Bedien- und Drop-Einstellungsfunktion der Panel ähnlich wie VSCODE im Front-End. In der Front-End-Entwicklung wird VSCODE ähnlich wie VSCODE implementiert ...

Der Unterschied in der Konsole.log -Ausgabeergebnis: Warum unterscheiden sich die beiden Anrufe? Der Unterschied in der Konsole.log -Ausgabeergebnis: Warum unterscheiden sich die beiden Anrufe? Apr 04, 2025 pm 05:12 PM

Eingehende Diskussion der Ursachen des Unterschieds in der Konsole.log-Ausgabe. In diesem Artikel wird die Unterschiede in den Ausgabeergebnissen der Konsolenfunktion in einem Code analysiert und die Gründe dafür erläutert. � ...

See all articles