Ventana y Entorno de Ejecución
Ventana y Entorno de Tiempo de Ejecución
Algunos documentos asumen un entorno de navegación — una ventana, una ubicación, almacenamiento, eventos. Esta capa modela esos objetos en puro Python para que dichos documentos puedan procesarse del lado del servidor sin un navegador.
El objeto Window
Window ancla el entorno, con WindowEventLoop impulsando su procesamiento de eventos, y Screen, VisualViewport y BarProp modelando el estado relacionado con la visualización. BrowsingContext vincula una ventana a su documento.
Estado de Navegación
Location y History modelan la dirección y el historial de sesión; Navigator informa la identidad del entorno, configurable mediante set_default_user_agent().
Eventos
La interfaz EventTarget de la familia Event — CustomEvent, UIEvent, MouseEvent, KeyboardEvent, FocusEvent, InputEvent, PopStateEvent, HashChangeEvent, ErrorEvent — implementa la distribución de eventos estándar. AbortController y AbortSignal proporcionan cancelación.
Almacenamiento y Mensajería
Storage modela el almacenamiento web de pares clave-valor. MessageChannel, MessagePort y BroadcastChannel cubren el paso de mensajes, con ayudantes de clonación estructurada (clone_value) detrás de ellos.
Observadores y Rendimiento
IntersectionObserver y ResizeObserver (con sus tipos de entrada) modelan APIs de observación, mientras que Performance, PerformanceEntry y Console completan los scripts de servicios de tiempo de ejecución que se usan comúnmente.
Consejos y Mejores Prácticas
- Solo manipule esta capa cuando procese documentos que realmente dependan del estado del entorno — el análisis y el estilo nunca lo requieren.
- Utilice
set_default_user_agent()cuando la lógica descendente ramifique según la identidad deNavigator. - Conectar
AbortSignalal procesamiento de larga duración para una cancelación limpia
Problemas comunes
| Problema | Causa | Solución |
|---|---|---|
| Script espera variables globales de window | Documento creado para navegadores | Proporcione la capa de entorno Window |
| Los eventos nunca se disparan | No hay bucle de eventos que impulse el despacho | Usar WindowEventLoop |
| La rama dependiente del agente de usuario funciona incorrectamente | Cadena UA predeterminada en vigor | Establecido mediante set_default_user_agent() |
FAQ
¿Necesito una ventana para analizar HTML?
No — la capa de entorno es opcional; el análisis, CSSOM y el diseño son independientes de ella.
¿Qué tipos de eventos están modelados?
La familia estándar: UI, mouse, teclado, foco, entrada, popstate, hashchange, error y eventos personalizados, todos despachados a través de EventTarget.
¿El almacenamiento web es persistente?
Storage modela la superficie API para propósitos de procesamiento; la persistencia depende de la aplicación de incrustación.
Resumen de API Reference
| Clase/Método | Descripción |
|---|---|
Window | Ancla del entorno de navegación |
Location | Estado de la dirección |
History | Historial de sesión |
EventTarget | Interfaz de despacho de eventos |
AbortController | Controlador de cancelación |
IntersectionObserver | Observación de intersección |
set_default_user_agent | Configurar identidad de Navigator |