JavaScript-context
JavaScript Context
De scriptinglaag biedt een gecontroleerde JavaScript evaluatiecontext voor documenten die er een nodig hebben. Het is opzettelijk beleidsgedreven: module-resolutie is expliciet, en fouten komen naar voren als getypeerde uitzonderingen.
De Evaluatiecontext
JSContext hostt script-evaluatie. Fouten die tijdens de evaluatie worden opgegooid, komen naar voren als JSEvaluationError, waardoor scriptfouten onderscheiden blijven van Python-kant fouten.
Module Laden
Module-resolutie wordt beheerd door ModuleRegistry, die modulespecificaties naar implementaties mappt. Ontbrekende modules veroorzaken ModuleNotFoundError (de eigen getypeerde fout van de bibliotheek) in plaats van stilzwijgend stubs terug te geven.
Laadbeleid
ModuleLoadPolicy bepaalt wat een context mag laden — het mechanisme voor het sandboxen van scriptgedrag in server-side verwerking waar willekeurige moduletoegang ongewenst is.
Tips en best practices
- Registreer alleen de modules die uw verwerkingssituatie nodig heeft; een kleine registratie is de sandbox
- Vang
JSEvaluationErrorapart van algemene uitzonderingen om scriptfouten van pijplijnfouten te onderscheiden - Behandel
ModuleNotFoundErrorals een beleidsignaal, niet als een fatale toestand — het betekent vaak dat de invoer een browser API verwacht die u ervoor gekozen heeft niet te leveren
Veelvoorkomende problemen
| Probleem | Oorzaak | Oplossing |
|---|---|---|
ModuleNotFoundError bij evaluatie | Module niet geregistreerd | Voeg het toe aan ModuleRegistry of pas het beleid aan |
| Scriptfout veroorzaakt een crash van de pijplijn | JSEvaluationError niet opgevangen | Behandel het op de evaluatiegrens |
| Onverwachte moduletoegang | Beleid te permissief | Verstrak ModuleLoadPolicy |
FAQ
Is scriptevaluatie vereist voor het parseren?
Nee — parsing, CSSOM en layout werken zonder enige scriptcontext.
Hoe kan ik bepalen welke scripts kunnen importeren?
Via ModuleRegistry (wat bestaat) en ModuleLoadPolicy (wat kan laden).
Hoe komen scriptfouten naar voren?
Als JSEvaluationError uitzonderingen aan de Python-kant.
API Reference Samenvatting
| Klasse/Methode | Beschrijving |
|---|---|
JSContext | JavaScript evaluatiecontext |
ModuleRegistry | Module-specifierregister |
ModuleLoadPolicy | Beheer van module-laadbeleid |
JSEvaluationError | Getypeerde script-evaluatiefout |
ModuleNotFoundError | Getypeerde ontbrekende-module-fout |