Janela e Ambiente de Execução
Janela e Ambiente de Execução
Alguns documentos presumem um ambiente de navegação — uma janela, uma localização, armazenamento, eventos. Essa camada modela esses objetos em puro Python para que tais documentos possam ser processados no servidor sem um navegador.
O Objeto Window
Window ancora o ambiente, com WindowEventLoop conduzindo o processamento de eventos, e Screen, VisualViewport e BarProp modelando o estado relacionado à exibição. BrowsingContext liga uma janela ao seu documento.
Estado de Navegação
Location e History modelam o endereço e o histórico de sessão; Navigator relata a identidade do ambiente, configurável via set_default_user_agent().
Eventos
A interface EventTarget com a família Event — CustomEvent, UIEvent, MouseEvent, KeyboardEvent, FocusEvent, InputEvent, PopStateEvent, HashChangeEvent, ErrorEvent — implementa a distribuição de eventos padrão. AbortController e AbortSignal fornecem cancelamento.
Armazenamento e Mensagens
Storage modela armazenamento web chave-valor. MessageChannel, MessagePort e BroadcastChannel cobrem a passagem de mensagens, com auxiliares de clone estruturado (clone_value) por trás deles.
Observadores e Desempenho
IntersectionObserver e ResizeObserver (com seus tipos de entrada) modelam APIs de observação, enquanto Performance, PerformanceEntry e Console completam os scripts de serviços de tempo de execução que normalmente são acessados.
Dicas e Melhores Práticas
- Só interfira nesta camada ao processar documentos que realmente dependem do estado do ambiente — análise e estilização nunca a exigem.
- Use
set_default_user_agent()quando a lógica a jusante ramifica com base na identidade deNavigator. - Conecte
AbortSignalao processamento de longa duração para cancelamento limpo
Problemas comuns
| Problema | Causa | Correção |
|---|---|---|
| O script espera globais do window | Documento criado para navegadores | Forneça a camada de ambiente Window |
| Eventos nunca são disparados | Nenhum event loop conduz o despacho | Usar WindowEventLoop |
| Ramo dependente de user-agent apresenta mau funcionamento | String de UA padrão em vigor | Definido via set_default_user_agent() |
FAQ
Preciso de uma Window para analisar HTML?
Não — a camada de ambiente é opcional; a análise, o CSSOM e o layout são independentes dela.
Quais tipos de evento são modelados?
A família padrão: UI, mouse, teclado, foco, input, popstate, hashchange, error e eventos personalizados, todos despachados através de EventTarget.
O armazenamento web é persistente?
Storage modela a superfície API para fins de processamento; a persistência depende da aplicação que incorpora.
API Reference Resumo
| Classe/Método | Descrição |
|---|---|
Window | Âncora do ambiente de navegação |
Location | Estado do endereço |
History | Histórico de sessão |
EventTarget | Interface de despacho de eventos |
AbortController | Controlador de cancelamento |
IntersectionObserver | Observação de interseção |
set_default_user_agent | Configurar identidade do Navigator |