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 JSEvaluationError apart van algemene uitzonderingen om scriptfouten van pijplijnfouten te onderscheiden
  • Behandel ModuleNotFoundError als 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

ProbleemOorzaakOplossing
ModuleNotFoundError bij evaluatieModule niet geregistreerdVoeg het toe aan ModuleRegistry of pas het beleid aan
Scriptfout veroorzaakt een crash van de pijplijnJSEvaluationError niet opgevangenBehandel het op de evaluatiegrens
Onverwachte moduletoegangBeleid te permissiefVerstrak 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/MethodeBeschrijving
JSContextJavaScript evaluatiecontext
ModuleRegistryModule-specifierregister
ModuleLoadPolicyBeheer van module-laadbeleid
JSEvaluationErrorGetypeerde script-evaluatiefout
ModuleNotFoundErrorGetypeerde ontbrekende-module-fout

Zie ook

 Nederlands