Okno a běhové prostředí
Okno a běhové prostředí
Některé dokumenty předpokládají prohlížečské prostředí — okno, umístění, úložiště, události. Tato vrstva modeluje tyto objekty v čistém Python, aby mohly být takové dokumenty zpracovány na serveru bez prohlížeče.
Objekt okna
Window zakotvuje prostředí, WindowEventLoop řídí zpracování událostí a Screen, VisualViewport a BarProp modelují stav související s displejem. BrowsingContext spojuje okno s jeho dokumentem.
Stav navigace
Location a History modelují adresu a historii relace; Navigator hlásí identitu prostředí, konfigurovatelnou pomocí set_default_user_agent().
Události
Rozhraní EventTarget s rodinou Event — CustomEvent, UIEvent, MouseEvent, KeyboardEvent, FocusEvent, InputEvent, PopStateEvent, HashChangeEvent, ErrorEvent — implementuje standardní rozesílání událostí. AbortController a AbortSignal poskytují zrušení.
Úložiště a Zprávy
Storage modeluje klíč-hodnota webové úložiště. MessageChannel, MessagePort a BroadcastChannel pokrývají předávání zpráv, s pomocníky strukturovaného klonování (clone_value) v pozadí.
Pozorovatelé a Výkon
IntersectionObserver a ResizeObserver (s jejich typy vstupů) modelují API pro pozorování, zatímco Performance, PerformanceEntry a Console doplňují skripty runtime služeb, se kterými se běžně pracuje.
Tipy a osvědčené postupy
- Tento vrstvu zasahujte pouze při zpracování dokumentů, které skutečně závisí na stavu prostředí — parsování a stylování ji nikdy nevyžadují.
- Použijte
set_default_user_agent(), když podřízená logika rozvětvuje na základě identityNavigator. - Propojte
AbortSignals dlouhodobým zpracováním pro čisté zrušení
Časté problémy
| Problém | Příčina | Oprava |
|---|---|---|
| Skript očekává globální proměnné window | Dokument vytvořený pro prohlížeče | Poskytněte vrstvu prostředí Window |
| Události se nikdy nespustí | Žádná smyčka událostí neřídí dispatch | Použijte WindowEventLoop |
| Větev závislá na user-agentu se chová nesprávně | Výchozí řetězec UA je v platnosti | Nastaveno pomocí set_default_user_agent() |
FAQ
Potřebuji okno pro parsování HTML?
Ne — vrstva prostředí je volitelná; parsování, CSSOM a rozvržení jsou na ní nezávislé.
Jaké typy událostí jsou modelovány?
Standardní rodina: UI, myš, klávesnice, focus, vstup, popstate, hashchange, error a vlastní události, všechny rozesílané přes EventTarget.
Je webové úložiště trvalé?
Storage modeluje povrch API pro účely zpracování; trvalost je na vložené aplikaci.
Shrnutí API Reference
| Třída/Metoda | Popis: |
|---|---|
Window | Kotva prohlížečového prostředí |
Location | Stav adresy |
History | Historie relace |
EventTarget | Rozhraní rozesílání událostí |
AbortController | Řadič zrušení |
IntersectionObserver | Pozorování průsečíku |
set_default_user_agent | Nastavit identitu Navigátora |