Heim >Web-Frontend >js-Tutorial >Wie kann ich die Inaktivität eines Browserfensters mit JavaScript erkennen?

Wie kann ich die Inaktivität eines Browserfensters mit JavaScript erkennen?

Barbara Streisand
Barbara StreisandOriginal
2024-12-20 04:31:12925Durchsuche

How Can I Detect Browser Window Inactivity with JavaScript?

Inaktivität des Browserfensters mit JavaScript erkennen

Viele Websites führen periodische Aktivitäten durch, die ressourcenintensiv sein können. Um die Leistung und das Benutzererlebnis zu optimieren, ist es von Vorteil, diese Aktivitäten anzuhalten, wenn der Benutzer die Seite nicht aktiv betrachtet.

Das Problem der Erkennung von Fensterinaktivität

Bestimmen, ob a Die Frage, ob der Benutzer aktiv ein Browserfenster oder eine Browserregisterkarte betrachtet, ist eine grundlegende Herausforderung bei der Webentwicklung. Die Ereignisse window.onfocus und window.onblur bieten grundlegende Funktionen, können jedoch unzuverlässig sein, da Benutzer den Fokus auf andere Registerkarten oder Anwendungen verschieben können, ohne das Fenster zu verlassen.

Die Lösung: Seitensichtbarkeits-API

Eine moderne und zuverlässige Lösung für dieses Problem ist die Page Visibility API. Diese API wird von den meisten gängigen Browsern unterstützt und bietet eine Möglichkeit zu erkennen, wenn eine Seite oder ein Tab aus der Sicht des Benutzers ausgeblendet wird.

document.addEventListener("visibilitychange", function() {
  if (document.visibilityState === "hidden") {
    // Pause periodic activities
  } else {
    // Resume periodic activities
  }
});

Leider wird diese API von IE 10 und früheren Versionen nicht unterstützt. Für diese älteren Browser kann ein weniger zuverlässiger Fallback mit onblur/onfocus- und onpageshow/onpagehide-Ereignissen verwendet werden.

var hidden = "hidden";

// Compatibility checks
if (hidden in document) {
  // Supported: Page Visibility API
} else if ((hidden = "mozHidden") in document) {
  // Mozilla-specific
} else if ((hidden = "webkitHidden") in document) {
  // WebKit-based
} else if ((hidden = "msHidden") in document) {
  // Microsoft-specific
} else {
  // Legacy events
}

function onchange(evt) {
  if (evt.type in evtMap) {
    document.body.className = evtMap[evt.type];
  } else {
    document.body.className = this[hidden] ? "hidden" : "visible";
  }
}

Durch die Verwendung der Page Visibility API und ihres Fallbacks können Sie Fensterinaktivität effektiv erkennen und Ihre Fenster optimieren Codeleistung entsprechend anpassen.

Das obige ist der detaillierte Inhalt vonWie kann ich die Inaktivität eines Browserfensters mit JavaScript erkennen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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