Context JavaScript
JavaScript Context
Stratul de scriptare oferă un context de evaluare JavaScript controlat pentru documentele care au nevoie de unul. Este deliberat ghidat de politică: rezolvarea modulelor este explicită, iar eșecurile apar ca excepții tipizate.
Contextul de evaluare
JSContext găzduiește evaluarea scriptului. Erorile generate în timpul evaluării apar ca JSEvaluationError, menținând eșecurile scriptului distincte de erorile de pe partea Python.
Încărcarea modulelor
Rezolvarea modulelor este guvernată de ModuleRegistry, care mapează specificatorii de module la implementări. Modulele lipsă generează ModuleNotFoundError (eroarea tipizată proprie a bibliotecii) în loc să returneze silențios stub-uri.
Politici de încărcare
ModuleLoadPolicy controlează ce poate încărca un context — mecanismul de izolare a comportamentului scriptului în procesarea pe server, unde accesul arbitrar la module nu este dorit.
Sfaturi și cele mai bune practici
- Înregistrează doar modulele de care are nevoie scenariul tău de procesare; un registru mic este sandbox-ul.
- Prinde
JSEvaluationErrorseparat de excepțiile generice pentru a distinge erorile scriptului de erorile pipeline-ului. - Tratează
ModuleNotFoundErrorca un semnal de politică, nu ca o condiție fatală — de obicei înseamnă că intrarea așteaptă un API de browser pe care ai ales să nu-l furnizezi.
Probleme comune
| Problemă | Cauză | Remediere |
|---|---|---|
ModuleNotFoundError în evaluare | Modul nu este înregistrat | Adaugă-l la ModuleRegistry sau ajustează politica |
| Eșecul scriptului blochează pipeline-ul | JSEvaluationError nu a fost prins | Gestionează-l la limita de evaluare |
| Acces neașteptat la modul | Politica este prea permisivă | Întărește ModuleLoadPolicy |
FAQ
Este necesară evaluarea scriptului pentru parsare?
Nu — parsarea, CSSOM și aranjarea funcționează fără niciun context de script.
Cum controlez ce scripturi pot importa?
Prin ModuleRegistry (ce există) și ModuleLoadPolicy (ce poate fi încărcat).
Cum apar erorile de script?
Ca excepții JSEvaluationError pe partea Python.
API Reference Rezumat
| Clasă/Metodă | Descriere: |
|---|---|
JSContext | JavaScript context de evaluare |
ModuleRegistry | Registru de specificatori de module |
ModuleLoadPolicy | Controlul politicii de încărcare a modulelor |
JSEvaluationError | Eșec de evaluare a scriptului tipizat |
ModuleNotFoundError | Eroare de tip pentru modul lipsă |