Window: pagehide-Ereignis

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

Das pagehide-Ereignis wird an ein Window gesendet, wenn der Browser die aktuelle Seite ausblendet, um eine andere Seite aus der Sitzungshistorie anzuzeigen.

Beispielsweise erhält die aktuelle Seite ein pagehide-Ereignis, wenn der Benutzer die Zurück-Schaltfläche des Browsers drückt, bevor die vorherige Seite angezeigt wird.

Syntax

Verwenden Sie den Ereignisnamen in Methoden wie addEventListener() oder setzen Sie eine Ereignis-Handler-Eigenschaft.

js
addEventListener("pagehide", (event) => { })

onpagehide = (event) => { }

Ereignistyp

Ereigniseigenschaften

PageTransitionEvent.persisted Schreibgeschützt

Gibt an, ob das Dokument aus einem Cache geladen wird.

Aliasnamen für Ereignishandler

Zusätzlich zur Window-Schnittstelle ist die Ereignis-Handler-Eigenschaft onpagehide auch auf den folgenden Zielen verfügbar:

Verwendungshinweise

Wie die Ereignisse unload und beforeunload, wird dieses Ereignis von Browsern, insbesondere auf mobilen Geräten, nicht zuverlässig ausgelöst. Beispielsweise wird das pagehide-Ereignis in folgendem Szenario überhaupt nicht ausgelöst:

  1. Ein mobiler Benutzer besucht Ihre Seite.
  2. Der Benutzer wechselt dann zu einer anderen App.
  3. Später schließt der Benutzer den Browser vom App-Manager aus.

Im Gegensatz zu den Ereignissen unload und beforeunload ist dieses Ereignis jedoch mit dem Back/Forward Cache (bfcache) kompatibel, sodass das Hinzufügen eines Listeners für dieses Ereignis die Seite nicht daran hindert, im bfcache enthalten zu sein.

Das beste Ereignis, um das Ende einer Benutzersitzung zu signalisieren, ist das visibilitychange-Ereignis. In Browsern, die visibilitychange nicht unterstützen, ist das pagehide-Ereignis die nächstbeste Alternative.

Wenn Sie speziell versuchen, das Entladen von Seiten zu erkennen, ist das pagehide-Ereignis die beste Option.

Siehe den Page Lifecycle API-Leitfaden für weitere Informationen darüber, wie sich dieses Ereignis auf andere Ereignisse im Seitenlebenszyklus bezieht.

Beispiele

In diesem Beispiel wird ein Ereignishandler eingerichtet, um nach pagehide-Ereignissen zu suchen und eine spezielle Behandlung vorzunehmen, wenn die Seite für eine mögliche Wiederverwendung gepuffert wird.

js
window.addEventListener(
  "pagehide",
  (event) => {
    if (event.persisted) {
      /* the page isn't being discarded, so it can be reused later */
    }
  },
  false,
);

Dies kann auch unter Verwendung der onpagehide-Ereignis-Handler-Eigenschaft auf dem Window geschrieben werden:

js
window.onpagehide = (event) => {
  if (event.persisted) {
    /* the page isn't being discarded, so it can be reused later */
  }
};

Spezifikationen

Specification
HTML
# event-pagehide

Browser-Kompatibilität

Siehe auch

  • Das pageshow-Ereignis.
  • Page Lifecycle API bietet Best-Practice-Leitlinien zum Umgang mit dem Verhalten des Seitenlebenszyklus in Ihren Webanwendungen.
  • PageLifecycle.js: Eine JavaScript-Bibliothek, die sich mit inkonsistentem Verhalten im Seitenlebenszyklus zwischen verschiedenen Browsern befasst.
  • Back/forward cache erklärt, was der Back/Forward Cache ist und seine Auswirkungen auf verschiedene Ereignisse im Seitenlebenszyklus.