JavaScript kontext

JavaScript Kontext

Vrstva skriptování poskytuje řízený JavaScript vyhodnocovací kontext pro dokumenty, které jej potřebují. Je úmyslně řízena politikou: rozlišení modulů je explicitní a selhání se projeví jako typované výjimky.


Vyhodnocovací kontext

JSContext hostuje vyhodnocování skriptů. Chyby vyvolané během vyhodnocování se projeví jako JSEvaluationError, což udržuje selhání skriptů oddělená od chyb na straně Python.

Načítání modulů

Rozlišení modulů je řízeno ModuleRegistry, který mapuje specifikátory modulů na implementace. Chybějící moduly vyvolají ModuleNotFoundError (vlastní typovanou chybu knihovny) místo tichého vrácení zástupců.

Zásady načítání

ModuleLoadPolicy řídí, co může kontext načíst — mechanismus pro sandboxování chování skriptu při serverovém zpracování, kde je nechtěný libovolný přístup k modulům.


Tipy a osvědčené postupy

  • Zaregistrujte pouze moduly, které vaše scénář zpracování potřebuje; malý registr je sandbox.
  • Zachyťte JSEvaluationError samostatně od obecných výjimek, abyste rozlišili chyby skriptu od chyb pipeline.
  • Považujte ModuleNotFoundError za signál politiky, nikoli za fatální stav — často to znamená, že vstup očekává browser API, který jste se rozhodli neposkytnout.

Běžné problémy

ProblémPříčinaOprava
ModuleNotFoundError při vyhodnocováníModul není zaregistrovánPřidejte jej do ModuleRegistry nebo upravte politiku
Selhání skriptu zhavaruje pipelineJSEvaluationError nebyl zachycenZpracujte to na hranici vyhodnocení
Neočekávaný přístup k moduluPolitika je příliš permisivníZpřísněte ModuleLoadPolicy

FAQ

Je pro parsování vyžadováno vyhodnocení skriptu?

Ne — parsování, CSSOM a rozvržení fungují bez jakéhokoli skriptového kontextu.

Jak mohu ovládat, co skripty mohou importovat?

Pomocí ModuleRegistry (co existuje) a ModuleLoadPolicy (co se může načíst).

Jak se skriptové chyby objeví?

Jako JSEvaluationError výjimky na straně Python.


API Reference Shrnutí

Třída/MetodaPopis:
JSContextJavaScript kontext vyhodnocování
ModuleRegistryRegistr specifikátoru modulu
ModuleLoadPolicyŘízení politiky načítání modulů
JSEvaluationErrorSelhání typovaného vyhodnocení skriptu
ModuleNotFoundErrorSelhání typovaného chybějícího modulu

Viz také:

 Čeština