Window en Runtime-omgeving
Window and Runtime-omgeving
Sommige documenten gaan uit van een browsing environment — een window, een location, storage, events. Deze layer modelleert die objecten in pure Python zodat dergelijke documenten server-side verwerkt kunnen worden zonder een browser.
Het Window Object
Window verankert de omgeving, met WindowEventLoop die de event verwerking aandrijft, en Screen, VisualViewport en BarProp modelleren display-gerelateerde status. BrowsingContext koppelt een window aan zijn document.
Navigatie-status
Location en History modelleren het adres en de session history; Navigator rapporteert de omgevingidentiteit, configureerbaar via set_default_user_agent().
Events
De EventTarget interface met de Event familie — CustomEvent, UIEvent, MouseEvent, KeyboardEvent, FocusEvent, InputEvent, PopStateEvent, HashChangeEvent, ErrorEvent — implementeert standaard event dispatch. AbortController en AbortSignal bieden annulering.
Storage en Messaging
Storage modelleert key-value web storage. MessageChannel, MessagePort en BroadcastChannel behandelen message passing, met structured-clone helpers (clone_value) erachter.
Observers en Performance
IntersectionObserver en ResizeObserver (met hun entry types) modelleren observatie-API’s, terwijl Performance, PerformanceEntry en Console de runtime-servicescripts afronden die vaak worden aangeraakt.
Tips en Best Practices
- Raak alleen deze layer aan bij het verwerken van documenten die echt afhankelijk zijn van de omgevingstoestand — parsing en styling vereisen het nooit
- Gebruik
set_default_user_agent()wanneer downstreamlogic vertakt opNavigatoridentiteit - Koppel
AbortSignalaan langdurige verwerking voor schone annulering
Veelvoorkomende problemen
| Probleem | Oorzaak | Oplossing |
|---|---|---|
| Script verwacht window globals | Document geschreven voor browsers | Voorzie de Window omgeving layer |
| Events worden nooit geactiveerd | Geen event loop die dispatch aanstuurt | Gebruik WindowEventLoop |
| User-agent-afhankelijke tak werkt niet correct | Standaard UA-string van kracht | Instellen via set_default_user_agent() |
FAQ
Heb ik een Window nodig om HTML te parseren?
Nee — de environment layer is optioneel; parsing, CSSOM en layout zijn onafhankelijk daarvan.
Welke event types worden gemodelleerd?
De standaardfamilie: UI, muis, toetsenbord, focus, invoer, popstate, hashchange, fout en aangepaste events, allemaal verzonden via EventTarget.
Is webopslag persistent?
Storage modelleert het API oppervlak voor verwerkingsdoeleinden; persistentie is aan de insluitende toepassing.
API Reference Samenvatting
| Klasse/Methode | Beschrijving |
|---|---|
Window | Browsing environment anker |
Location | Adresstatus |
History | Sessiegeschiedenis |
EventTarget | Gebeurtenisverzendinterface |
AbortController | Annuleringscontroller |
IntersectionObserver | Intersectie-observatie |
set_default_user_agent | Configureer Navigator identiteit |