Fönster och körningsmiljö

Fönster och körningsmiljö

Fönster och körningsmiljö

Vissa dokument förutsätter en surfmiljö — ett fönster, en plats, lagring, händelser. Detta lager modellerar dessa objekt i ren Python så att sådana dokument kan bearbetas på servern utan en webbläsare.


Fönsterobjektet

Window förankrar miljön, med WindowEventLoop som styr dess händelsebehandling, och Screen, VisualViewport och BarProp modellerar visningsrelaterat tillstånd. BrowsingContext kopplar ett fönster till dess dokument.

Navigationsstatus

Location och History modellerar adressen och sessionshistoriken; Navigator rapporterar miljöidentitet, konfigurerbar via set_default_user_agent().

Händelser

Det EventTarget gränssnittet med Event familjen — CustomEvent, UIEvent, MouseEvent, KeyboardEvent, FocusEvent, InputEvent, PopStateEvent, HashChangeEvent, ErrorEvent — implementerar standardhändelseutsändning. AbortController och AbortSignal tillhandahåller avbokning.

Lagring och Meddelanden

Storage modellerar nyckel-värde webb lagring. MessageChannel, MessagePort och BroadcastChannel täcker meddelandeutbyte, med structured-clone-hjälpare (clone_value) bakom dem.

Observatörer och Prestanda

IntersectionObserver och ResizeObserver (med sina posttyper) modellerar observations-API:er, medan Performance, PerformanceEntry och Console kompletterar de runtime-tjänstskript som vanligtvis berörs.


Tips och bästa praxis

  • Rör bara detta lager när du bearbetar dokument som faktiskt beror på miljötillstånd — parsning och styling kräver det aldrig.
  • Använd set_default_user_agent() när efterföljande logik förgrenar sig på Navigator identitet.
  • Koppla AbortSignal till långvarig bearbetning för ren avbrytning

Vanliga problem

ProblemOrsakLösning
Skriptet förväntar sig globala variabler i windowDokumentet är skrivet för webbläsareTillhandahåll Window miljölagret
Händelser avfyras aldrigIngen händelseslinga driver dispatchAnvänd WindowEventLoop
Användaragent-beroende gren beter sig felaktigtStandard-UA-sträng i kraftStäll in via set_default_user_agent()

FAQ

Behöver jag ett Window för att tolka HTML?

Nej — miljölagret är valfritt; tolkning, CSSOM och layout är oberoende av det.

Vilka händelsetyper modelleras?

Standardfamiljen: UI, mouse, keyboard, focus, input, popstate, hashchange, error och custom events, alla utsända via EventTarget.

Är webblagring beständig?

Storage modellerar API-ytan för bearbetningsändamål; persistens är upp till den inbäddande applikationen.


API Reference Sammanfattning

Klass/MetodBeskrivning
WindowAnkare för webbläsarmiljö
LocationAdressstatus
HistorySessionshistorik
EventTargetGränssnitt för händelseutskick
AbortControllerAvbrutningskontroller
IntersectionObserverKorsningsobservation
set_default_user_agentKonfigurera Navigator-identitet

Se även

 Svenska