Janela e Ambiente de Execução

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 de Navigator.
  • Conecte AbortSignal ao processamento de longa duração para cancelamento limpo

Problemas comuns

ProblemaCausaCorreção
O script espera globais do windowDocumento criado para navegadoresForneça a camada de ambiente Window
Eventos nunca são disparadosNenhum event loop conduz o despachoUsar WindowEventLoop
Ramo dependente de user-agent apresenta mau funcionamentoString de UA padrão em vigorDefinido 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étodoDescrição
WindowÂncora do ambiente de navegação
LocationEstado do endereço
HistoryHistórico de sessão
EventTargetInterface de despacho de eventos
AbortControllerControlador de cancelamento
IntersectionObserverObservação de interseção
set_default_user_agentConfigurar identidade do Navigator

Ver também

 Português