Konteks JavaScript

JavaScript Konteks

Lapisan scripting menyediakan konteks evaluasi JavaScript yang terkontrol untuk dokumen yang membutuhkannya. Ini sengaja berbasis kebijakan: resolusi modul eksplisit, dan kegagalan muncul sebagai pengecualian bertipe.


Konteks Evaluasi

JSContext menampung evaluasi skrip. Kesalahan yang muncul selama evaluasi muncul sebagai JSEvaluationError, menjaga kegagalan skrip tetap terpisah dari kesalahan sisi Python.

Pemuat Modul

Resolusi modul diatur oleh ModuleRegistry, yang memetakan spesifikator modul ke implementasi. Modul yang hilang memicu ModuleNotFoundError (kesalahan bertipe milik perpustakaan) alih-alih secara diam-diam mengembalikan stub.

Kebijakan Muat

ModuleLoadPolicy mengontrol apa yang dapat dimuat oleh sebuah konteks — mekanisme untuk sandboxing perilaku skrip dalam pemrosesan sisi server di mana akses modul sewenang-wenang tidak diinginkan.


Tips dan Praktik Terbaik

  • Daftarkan hanya modul yang diperlukan oleh skenario pemrosesan Anda; registri kecil adalah sandbox
  • Tangkap JSEvaluationError secara terpisah dari pengecualian umum untuk membedakan bug skrip dari bug pipeline
  • Anggap ModuleNotFoundError sebagai sinyal kebijakan, bukan kondisi fatal — seringkali itu berarti input mengharapkan browser API yang Anda pilih untuk tidak disediakan

Masalah Umum

MasalahPenyebabPerbaikan
ModuleNotFoundError pada evaluasiModul tidak terdaftarTambahkan ke ModuleRegistry atau sesuaikan kebijakan
Kegagalan skrip menyebabkan pipeline crashJSEvaluationError tidak tertangkapTangani di batas evaluasi
Akses modul tak terdugaKebijakan terlalu permisifPerketat ModuleLoadPolicy

FAQ

Apakah evaluasi skrip diperlukan untuk parsing?

Tidak — parsing, CSSOM, dan layout bekerja tanpa konteks skrip apa pun.

Bagaimana saya mengontrol apa yang dapat diimpor oleh skrip?

Melalui ModuleRegistry (apa yang ada) dan ModuleLoadPolicy (apa yang dapat dimuat).

Bagaimana kesalahan skrip muncul?

Sebagai pengecualian JSEvaluationError di sisi Python.


API Reference Ringkasan

Kelas/MetodeDeskripsi
JSContextJavaScript konteks evaluasi
ModuleRegistryRegistri penunjuk modul
ModuleLoadPolicyKontrol kebijakan pemuatan modul
JSEvaluationErrorKegagalan evaluasi skrip bertipe
ModuleNotFoundErrorKegagalan modul yang hilang bertipe

Lihat Juga

 Bahasa Indonesia