Okno i środowisko uruchomieniowe

Okno i środowisko uruchomieniowe

Okno i środowisko wykonawcze

Niektóre dokumenty zakładają środowisko przeglądania — okno, lokalizację, pamięć, zdarzenia. Ta warstwa modeluje te obiekty w czystym Python, aby takie dokumenty mogły być przetwarzane po stronie serwera bez przeglądarki.


Obiekt Window

Window zakotwicza środowisko, WindowEventLoop steruje przetwarzaniem zdarzeń, a Screen, VisualViewport i BarProp modelują stan związany z wyświetlaniem. BrowsingContext łączy okno z jego dokumentem.

Stan nawigacji

Location i History modelują adres i historię sesji; Navigator raportuje tożsamość środowiska, konfigurowalną przez set_default_user_agent().

Zdarzenia

Interfejs EventTarget z rodziną Event — CustomEvent, UIEvent, MouseEvent, KeyboardEvent, FocusEvent, InputEvent, PopStateEvent, HashChangeEvent, ErrorEvent — implementuje standardowe rozgłaszanie zdarzeń. AbortController i AbortSignal zapewniają anulowanie.

Przechowywanie i komunikacja

Storage modeluje przechowywanie internetowe klucz-wartość. MessageChannel, MessagePort i BroadcastChannel obejmują przekazywanie wiadomości, z pomocnikami strukturalnego klonowania (clone_value) w tle.

Obserwatory i wydajność

IntersectionObserver i ResizeObserver (z ich typami wpisów) modelują API obserwacji, podczas gdy Performance, PerformanceEntry i Console uzupełniają skrypty usług czasu wykonania, z którymi zazwyczaj ma się kontakt.


Wskazówki i najlepsze praktyki

  • Dotykaj tej warstwy tylko przy przetwarzaniu dokumentów, które naprawdę zależą od stanu środowiska — parsowanie i stylowanie nigdy tego nie wymagają.
  • Użyj set_default_user_agent(), gdy logika downstream rozgałęzia się w oparciu o tożsamość Navigator.
  • Włącz AbortSignal do długotrwałego przetwarzania w celu czystego anulowania

Typowe problemy

ProblemPrzyczynaNaprawa
Skrypt oczekuje globalnych zmiennych windowDokument przeznaczony dla przeglądarekUdostępnij warstwę środowiska Window
Zdarzenia nigdy nie są wyzwalaneBrak pętli zdarzeń sterującej dystrybucjąUżyj WindowEventLoop
Gałąź zależna od user-agenta zachowuje się nieprawidłowoDomyślny ciąg UA jest w użyciuUstawione za pomocą set_default_user_agent()

FAQ

Czy potrzebuję obiektu Window, aby parsować HTML?

Nie — warstwa środowiska jest opcjonalna; parsowanie, CSSOM i układ są od niej niezależne.

Jakie typy zdarzeń są modelowane?

Standardowa rodzina: UI, mouse, keyboard, focus, input, popstate, hashchange, error oraz zdarzenia niestandardowe, wszystkie wysyłane przez EventTarget.

Czy web storage jest trwały?

Storage modeluje powierzchnię API w celach przetwarzania; trwałość zależy od aplikacji osadzającej.


Podsumowanie API Reference

Klasa/MetodaOpis
WindowKotwica środowiska przeglądania
LocationStan adresu
HistoryHistoria sesji
EventTargetInterfejs dystrybucji zdarzeń
AbortControllerKontroler anulowania
IntersectionObserverObserwacja przecięcia
set_default_user_agentSkonfiguruj tożsamość Navigatora

Zobacz także

 Polski