Ablak és futtatási környezet

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 a Navigator azonosságán ágazik.
  • Ágyazzuk be a AbortSignal hosszú távú feldolgozásba a tiszta leállítás érdekében

Gyakori problémák

ProblémaOkJavítás
A szkript a window globális változókat várjaA dokumentum böngészők számára készültBiztosítsa a Window környezeti réteget
Az események soha nem indulnakNincs event loop, amely a diszpécsert hajtjaHasználja a WindowEventLoop
User-agent-függő ág hibásan viselkedikAlapértelmezett UA karakterlánc érvénybenBeá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ódszerLeírás
WindowBöngészési környezet horgony
LocationCím állapota
HistoryMunkamenet előzménye
EventTargetEseményküldő interfész
AbortControllerLeállítási vezérlő
IntersectionObserverKereszteződés megfigyelése
set_default_user_agentNavigator személyazonosság beállítása

Lásd még:

 Magyar