JavaScript-Kontext

JavaScript Kontext

Die Scripting-Ebene bietet einen kontrollierten JavaScript-Evaluierungskontext für Dokumente, die einen benötigen. Sie ist bewusst richtliniengesteuert: Die Modulauflösung ist explizit, und Fehlermeldungen treten als typisierte Ausnahmen auf.


Der Evaluierungskontext

JSContext hostet die Skriptauswertung. Während der Auswertung ausgelöste Fehler treten als JSEvaluationError auf und halten Skriptfehler von Python-seitigen Fehlern getrennt.

Modul Laden

Die Modulauflösung wird von ModuleRegistry gesteuert, das Modul-Spezifizierer zu Implementierungen zuordnet. Fehlende Module werfen ModuleNotFoundError (den eigenen typisierten Fehler der Bibliothek) anstatt stillschweigend Stubs zurückzugeben.

Lade-Richtlinien

ModuleLoadPolicy steuert, was ein Kontext laden darf — der Mechanismus zur Sandbox-Einrichtung des Skriptverhaltens bei serverseitiger Verarbeitung, bei der ein beliebiger Modulzugriff unerwünscht ist.


Tipps und bewährte Vorgehensweisen

  • Registrieren Sie nur die Module, die Ihr Verarbeitungsszenario benötigt; ein kleiner Katalog ist die Sandbox.
  • Fangen Sie JSEvaluationError getrennt von generischen Ausnahmen ab, um Skriptfehler von Pipeline-Fehlern zu unterscheiden.
  • Betrachten Sie ModuleNotFoundError als ein Policy-Signal, nicht als eine fatale Bedingung — es bedeutet oft, dass die Eingabe einen Browser API erwartet, den Sie bewusst nicht bereitstellen.

Häufige Probleme

ProblemUrsacheLösung
ModuleNotFoundError bei der AuswertungModul nicht registriertFügen Sie es zu ModuleRegistry hinzu oder passen Sie die Richtlinie an
Skriptfehler lässt die Pipeline abstürzenJSEvaluationError nicht abgefangenBehandle es an der Evaluationsgrenze
Unerwarteter ModulzugriffRichtlinie zu großzügigVerschärfe ModuleLoadPolicy

FAQ

Ist eine Skriptauswertung für das Parsen erforderlich?

Nein — Parsen, CSSOM und Layout funktionieren ohne jeglichen Skriptkontext.

Wie kann ich steuern, was Skripte importieren können?

Durch ModuleRegistry (was existiert) und ModuleLoadPolicy (was geladen werden kann).

Wie treten Skriptfehler auf?

Als JSEvaluationError-Ausnahmen auf der Python-Seite.


API Reference Zusammenfassung

Klasse/MethodeBeschreibung
JSContextJavaScript Evaluationskontext
ModuleRegistryModul-Bezeichner-Register
ModuleLoadPolicyKontrolle der Modul-Lade-Richtlinie
JSEvaluationErrorTypisierter script-evaluation-Fehler
ModuleNotFoundErrorTypisierter missing-module-Fehler

Siehe auch

 Deutsch