Fereastră și Mediu de Execuție

Fereastră și Mediu de Execuție

Fereastră și Mediu de Execuție

Unele documente presupun un mediu de navigare — o fereastră, o locație, stocare, evenimente. Acest strat modelează aceste obiecte în Python pur, astfel încât aceste documente pot fi procesate pe server fără un browser.


Obiectul Fereastră

Window ancorează mediul, cu WindowEventLoop care conduce procesarea evenimentelor, și Screen, VisualViewport și BarProp care modelează starea legată de afișare. BrowsingContext leagă o fereastră de documentul său.

Stare de navigare

Location și History modelează adresa și istoricul sesiunii; Navigator raportează identitatea mediului, configurabil prin set_default_user_agent().

Evenimente

Interfața EventTarget cu familia Event — CustomEvent, UIEvent, MouseEvent, KeyboardEvent, FocusEvent, InputEvent, PopStateEvent, HashChangeEvent, ErrorEvent — implementează distribuția de evenimente standard. AbortController și AbortSignal oferă anularea.

Stocare și Mesagerie

Storage modelează stocarea web tip cheie-valoare. MessageChannel, MessagePort și BroadcastChannel acoperă transmiterea de mesaje, cu ajutoare de clonare structurată (clone_value) în spatele lor.

Observatori și Performanță

IntersectionObserver și ResizeObserver (cu tipurile lor de intrare) modelează API-urile de observare, în timp ce Performance, PerformanceEntry și Console completează scripturile de servicii de runtime cu care se lucrează în mod obișnuit.


Sfaturi și Cele Mai Bune Practici

  • Atingeți acest strat numai când procesați documente care depind cu adevărat de starea mediului — parsarea și stilizarea nu o necesită niciodată
  • Utilizați set_default_user_agent() când logica ulterioară se ramifică pe baza identității Navigator
  • Conectați AbortSignal în procesarea de lungă durată pentru anulare curată

Probleme comune

ProblemăCauzăRemediere
Scriptul așteaptă variabile globale ale ferestreiDocument scris pentru browsereFurnizați stratul de mediu Window
Evenimentele nu se declanșează niciodatăNicio buclă de evenimente nu conduce la expediereUtilizați WindowEventLoop
Ramura dependentă de user-agent se comportă incorectȘirul UA implicit în vigoareSetat prin set_default_user_agent()

FAQ

Am nevoie de o fereastră pentru a parsa HTML?

Nu — stratul de mediu este opțional; parsarea, CSSOM și layout-ul sunt independente de acesta.

Ce tipuri de evenimente sunt modelate?

Familia standard: UI, mouse, tastatură, focus, input, popstate, hashchange, error și evenimente personalizate, toate trimise prin EventTarget.

Este stocarea web persistentă?

Storage modelează suprafața API în scopuri de procesare; persistența este la discreția aplicației de încorporare.


Rezumat API Reference

Clasă/MetodăDescriere:
WindowAncora mediului de navigare
LocationStarea adresei
HistoryIstoricul sesiunii
EventTargetInterfață de expediere a evenimentelor
AbortControllerControler de anulare
IntersectionObserverObservarea intersecției
set_default_user_agentConfigurați identitatea Navigator

Vezi și:

 Română