Fenster und Laufzeitumgebung

Fenster und Laufzeitumgebung

Fenster- und Laufzeitumgebung

Einige Dokumente gehen von einer Browsing-Umgebung aus — einem Fenster, einem Ort, Speicher, Ereignissen. Diese Schicht modelliert diese Objekte in reinem Python, sodass solche Dokumente serverseitig ohne Browser verarbeitet werden können.


Das Fensterobjekt

Window verankert die Umgebung, wobei WindowEventLoop die Ereignisverarbeitung steuert und Screen, VisualViewport und BarProp den displaybezogenen Zustand modellieren. BrowsingContext verbindet ein Fenster mit seinem Dokument.

Navigationszustand

Location und History modellieren die Adresse und den Sitzungsverlauf; Navigator meldet die Identität der Umgebung, konfigurierbar über set_default_user_agent().

Ereignisse

Die EventTarget-Schnittstelle mit der Event-Familie — CustomEvent, UIEvent, MouseEvent, KeyboardEvent, FocusEvent, InputEvent, PopStateEvent, HashChangeEvent, ErrorEvent — implementiert standardmäßige Ereignisverteilung. AbortController und AbortSignal bieten Abbruch.

Speicherung und Messaging

Storage modelliert schlüsselwertbasierten Webspeicher. MessageChannel, MessagePort und BroadcastChannel decken Nachrichtenübermittlung ab, mit Structured-Clone-Hilfen (clone_value) im Hintergrund.

Beobachter und Leistung

IntersectionObserver und ResizeObserver (mit ihren Entry-Typen) modellieren Beobachtungs-APIs, während Performance, PerformanceEntry und Console die Laufzeit-Diensteskripte ergänzen, die üblicherweise berührt werden.


Tipps und bewährte Verfahren

  • Berühren Sie diese Schicht nur, wenn Sie Dokumente verarbeiten, die tatsächlich vom Umgebungszustand abhängen — Parsing und Styling erfordern sie nie.
  • Verwenden Sie set_default_user_agent(), wenn die nachgelagerte Logik anhand der Identität von Navigator verzweigt.
  • Binde AbortSignal in langlaufende Verarbeitung ein, um einen sauberen Abbruch zu ermöglichen.

Häufige Probleme

ProblemUrsacheLösung
Skript erwartet globale window-ObjekteDokument für Browser verfasstStellen Sie die Window Umgebungsschicht bereit
Ereignisse werden nie ausgelöstKeine Ereignisschleife steuert den DispatchVerwenden Sie WindowEventLoop
User-Agent-abhängiger Zweig verhält sich fehlerhaftStandard-User-Agent-String ist aktivÜber set_default_user_agent() festgelegt

FAQ

Benötige ich ein Window, um HTML zu parsen?

Nein — die Umgebungsschicht ist optional; Parsing, CSSOM und Layout sind davon unabhängig.

Welche Ereignistypen werden modelliert?

Die Standardfamilie: UI, Maus, Tastatur, Fokus, Eingabe, popstate, hashchange, Fehler und benutzerdefinierte Ereignisse, alle über EventTarget ausgelöst.

Ist Web-Storage persistent?

Storage modelliert die API-Oberfläche für Verarbeitungszwecke; die Persistenz liegt in der Verantwortung der einbettenden Anwendung.


API Reference Zusammenfassung

Klasse/MethodeBeschreibung
WindowBrowser-Umgebungs-Anker
LocationAdresszustand
HistorySitzungsverlauf
EventTargetEvent-Dispatch-Schnittstelle
AbortControllerStornierungscontroller
IntersectionObserverSchnittmengenbeobachtung
set_default_user_agentNavigator-Identität konfigurieren

Siehe auch

 Deutsch