Ablak és futtatási környezet
Ablak és futtatási környezet
Néhány dokumentum feltételezi a böngészési környezetet — egy ablakot, egy helyet, tárolást, eseményeket. Ez a réteg modellezi ezeket az objektumokat tiszta Python formában, így az ilyen dokumentumok szerveroldalon feldolgozhatók böngésző nélkül.
Az ablakobjektum
Window rögzíti a környezetet, a WindowEventLoop vezérli az eseményfeldolgozást, a Screen, VisualViewport és BarProp a megjelenítéssel kapcsolatos állapotot modellezik. BrowsingContext összekapcsol egy ablakot a dokumentumával.
Navigációs állapot
Location és History modellezik a címet és a munkamenet előzményeit; Navigator jelenti a környezet azonosítóját, amely set_default_user_agent() segítségével konfigurálható.
Események
Az EventTarget interfész a Event családdal — CustomEvent, UIEvent, MouseEvent, KeyboardEvent, FocusEvent, InputEvent, PopStateEvent, HashChangeEvent, ErrorEvent — valósítja meg a szabványos eseményküldést. AbortController és AbortSignal biztosítják a leállítást.
Tárolás és üzenetküldés
Storage modellezi a kulcs-érték webtárolást. MessageChannel, MessagePort és BroadcastChannel fedik le az üzenetküldést, a mögöttük álló strukturált-klón segédeszközökkel (clone_value).
Megfigyelők és teljesítmény
IntersectionObserver és ResizeObserver (a belépési típusaikkal) modellezik a megfigyelési API-kat, míg Performance, PerformanceEntry és Console kiegészítik a futásidejű szolgáltatási szkripteket, amelyeket általában érint.
Tippek és bevált gyakorlatok
- Csak akkor érintse ezt a réteget, ha olyan dokumentumokat dolgoz fel, amelyek valóban a környezeti állapottól függenek — a szintaxis elemzés és a stílusozás soha nem igényli.
- Használja a
set_default_user_agent()-t, amikor a downstream logika aNavigatorazonosságán ágazik. - Ágyazzuk be a
AbortSignalhosszú távú feldolgozásba a tiszta leállítás érdekében
Gyakori problémák
| Probléma | Ok | Javítás |
|---|---|---|
| A szkript a window globális változókat várja | A dokumentum böngészők számára készült | Biztosítsa a Window környezeti réteget |
| Az események soha nem indulnak | Nincs event loop, amely a diszpécsert hajtja | Használja a WindowEventLoop |
| User-agent-függő ág hibásan viselkedik | Alapértelmezett UA karakterlánc érvényben | Beállítva a(z) set_default_user_agent() segítségével |
FAQ
Szükségem van egy Window-ra a HTML elem elemzéséhez?
Nem — a környezeti réteg opcionális; a parsing, a CSSOM és a layout független tőle.
Mely eseménytípusok vannak modellezve?
Az alapértelmezett család: UI, egér, billentyűzet, fókusz, input, popstate, hashchange, error és egyéni események, mind EventTarget útján küldve.
A webtároló perzisztens?
Storage modellezi a API felületet feldolgozási célokra; a perzisztencia az beágyazó alkalmazástól függ.
API Reference összefoglaló
| Osztály/Módszer | Leírás |
|---|---|
Window | Böngészési környezet horgony |
Location | Cím állapota |
History | Munkamenet előzménye |
EventTarget | Eseményküldő interfész |
AbortController | Leállítási vezérlő |
IntersectionObserver | Kereszteződés megfigyelése |
set_default_user_agent | Navigator személyazonosság beállítása |