Kontekst JavaScript
JavaScript Kontekst
Warstwa skryptowa zapewnia kontrolowany kontekst oceny JavaScript dla dokumentów, które go potrzebują. Jest ona celowo sterowana polityką: rozwiązywanie modułów jest jawne, a niepowodzenia pojawiają się jako typowane wyjątki.
Kontekst oceny
JSContext hostuje ocenę skryptu. Błędy podniesione podczas oceny pojawiają się jako JSEvaluationError, utrzymując awarie skryptu odrębne od błędów po stronie Python.
Ładowanie modułów
Rozwiązywanie modułów jest kontrolowane przez ModuleRegistry, który mapuje specyfikatory modułów na implementacje. Brakujące moduły podnoszą ModuleNotFoundError (własny typowany błąd biblioteki) zamiast cicho zwracać szkielety.
Polityki ładowania
ModuleLoadPolicy kontroluje, co kontekst może ładować — mechanizm izolacji zachowania skryptu w przetwarzaniu po stronie serwera, gdzie niepożądany jest dowolny dostęp do modułów.
Wskazówki i najlepsze praktyki
- Rejestruj tylko moduły, które potrzebuje Twój scenariusz przetwarzania; mały rejestr to piaskownica.
- Łap
JSEvaluationErrorosobno od ogólnych wyjątków, aby odróżnić błędy skryptu od błędów potoku. - Traktuj
ModuleNotFoundErrorjako sygnał polityki, a nie warunek krytyczny — często oznacza to, że wejście oczekuje przeglądarki API, której zdecydowałeś się nie dostarczyć.
Typowe problemy
| Problem | Przyczyna | Naprawa |
|---|---|---|
ModuleNotFoundError przy ocenie | Moduł nie jest zarejestrowany | Dodaj go do ModuleRegistry lub dostosuj politykę |
| Błąd skryptu powoduje awarię potoku | Nie przechwycono JSEvaluationError | Obsłuż to na granicy oceny |
| Nieoczekiwany dostęp do modułu | Polityka zbyt pobłażliwa | Zacieśnij ModuleLoadPolicy |
FAQ
Czy ocena skryptu jest wymagana przy parsowaniu?
Nie — parsowanie, CSSOM i układ działają bez żadnego kontekstu skryptu.
Jak kontrolować, co skrypty mogą importować?
Poprzez ModuleRegistry (co istnieje) i ModuleLoadPolicy (co może się załadować).
Jak pojawiają się błędy skryptów?
Jako JSEvaluationError wyjątki po stronie Python.
Podsumowanie API Reference
| Klasa/Metoda | Opis |
|---|---|
JSContext | JavaScript kontekst oceny |
ModuleRegistry | Rejestr określników modułu |
ModuleLoadPolicy | Kontrola polityki ładowania modułu |
JSEvaluationError | Błąd typowanej ewaluacji skryptu |
ModuleNotFoundError | Błąd typowanego brakującego modułu |