Contexto de JavaScript
JavaScript Contexto
La capa de scripting proporciona un contexto de evaluación controlado JavaScript para los documentos que lo necesiten. Está deliberadamente guiada por políticas: la resolución de módulos es explícita, y los fallos aparecen como excepciones tipadas.
El contexto de evaluación
JSContext aloja la evaluación de scripts. Los errores generados durante la evaluación aparecen como JSEvaluationError, manteniendo los fallos de script distintos de los errores del lado Python.
Carga de módulos
La resolución de módulos está gobernada por ModuleRegistry, que asigna los especificadores de módulos a implementaciones. Los módulos faltantes generan ModuleNotFoundError (el error tipado propio de la biblioteca) en lugar de devolver silenciosamente stubs.
Políticas de carga
ModuleLoadPolicy controla lo que un contexto puede cargar — el mecanismo para aislar el comportamiento de scripts en el procesamiento del lado del servidor donde no se desea el acceso arbitrario a módulos.
Consejos y Mejores Prácticas
- Registre solo los módulos que su escenario de procesamiento necesite; un registro pequeño es el sandbox
- Capture
JSEvaluationErrorpor separado de las excepciones genéricas para distinguir errores de script de errores de la canalización - Trate
ModuleNotFoundErrorcomo una señal de política, no como una condición fatal — a menudo significa que la entrada espera un API de navegador que ha decidido no proporcionar
Problemas Comunes
| Problema | Causa | Corrección |
|---|---|---|
ModuleNotFoundError en la evaluación | Módulo no registrado | Añádelo a ModuleRegistry o ajusta la política |
| El fallo del script bloquea la canalización | JSEvaluationError no capturado | Manejarlo en el límite de evaluación |
| Acceso inesperado al módulo | Política demasiado permisiva | Ajustar ModuleLoadPolicy |
FAQ
¿Se requiere la evaluación de scripts para el análisis?
No — el análisis, CSSOM y el diseño funcionan sin ningún contexto de script.
¿Cómo controlo qué scripts pueden importar?
A través de ModuleRegistry (lo que existe) y ModuleLoadPolicy (lo que puede cargarse).
¿Cómo aparecen los errores de script?
Como excepciones JSEvaluationError en el lado Python.
API Reference Resumen
| Clase/Método | Descripción |
|---|---|
JSContext | JavaScript contexto de evaluación |
ModuleRegistry | Registro de Especificador de Módulo |
ModuleLoadPolicy | Control de Política de Carga de Módulos |
JSEvaluationError | Fallo de Evaluación de Script Tipado |
ModuleNotFoundError | Fallo de Módulo Faltante Tipado |