Fenêtre et environnement d'exécution

Fenêtre et environnement d'exécution

Fenêtre et environnement d’exécution

Certains documents supposent un environnement de navigation — une fenêtre, un emplacement, du stockage, des événements. Cette couche modélise ces objets en pur Python afin que ces documents puissent être traités côté serveur sans navigateur.


L’objet Window

Window ancre l’environnement, avec WindowEventLoop pilotant son traitement des événements, et Screen, VisualViewport et BarProp modélisant l’état lié à l’affichage. BrowsingContext relie une fenêtre à son document.

État de navigation

Location et History modélisent l’adresse et l’historique de session; Navigator rapporte l’identité de l’environnement, configurable via set_default_user_agent().

Événements

L’interface EventTarget de la famille Event — CustomEvent, UIEvent, MouseEvent, KeyboardEvent, FocusEvent, InputEvent, PopStateEvent, HashChangeEvent, ErrorEvent — implémente la distribution d’événements standard. AbortController et AbortSignal offrent l’annulation.

Stockage et Messagerie

Storage modélise le stockage web clé-valeur. MessageChannel, MessagePort et BroadcastChannel couvrent le passage de messages, avec des aides de clonage structuré (clone_value) derrière eux.

Observateurs et Performance

IntersectionObserver et ResizeObserver (avec leurs types d’entrée) modélisent les API d’observation, tandis que Performance, PerformanceEntry et Console complètent les scripts de services d’exécution que l’on touche couramment.


Conseils et bonnes pratiques

  • Ne touchez à cette couche que lors du traitement de documents qui dépendent réellement de l’état de l’environnement — l’analyse et le style n’en ont jamais besoin.
  • Utilisez set_default_user_agent() lorsque la logique en aval se branche sur l’identité Navigator.
  • Intégrer AbortSignal dans un traitement de longue durée pour une annulation propre

Problèmes courants

ProblèmeCauseCorrection
Le script attend les variables globales de la fenêtreDocument rédigé pour les navigateursFournir la couche d’environnement Window
Les événements ne se déclenchent jamaisAucune boucle d’événements ne pilote le dispatchUtiliser WindowEventLoop
La branche dépendante de l’agent utilisateur se comporte malChaîne UA par défaut en vigueurDéfini via set_default_user_agent()

FAQ

Ai-je besoin d’une fenêtre pour analyser HTML?

Non — la couche d’environnement est facultative; l’analyse, le CSSOM et la mise en page en sont indépendants.

Quels types d’événements sont modélisés?

La famille standard : UI, souris, clavier, focus, entrée, popstate, hashchange, erreur et événements personnalisés, tous dispatchés via EventTarget.

Le stockage web est-il persistant?

Storage modèle la surface API à des fins de traitement ; la persistance dépend de l’application d’intégration.


Résumé API Reference

Classe/MéthodeDescription
WindowAncre de l’environnement de navigation
LocationÉtat de l’adresse
HistoryHistorique de session
EventTargetInterface d’envoi d’événements
AbortControllerContrôleur d’annulation
IntersectionObserverObservation d’intersection
set_default_user_agentConfigurer l’identité de Navigator

Voir aussi

 Français