JavaScript Bağlamı
JavaScript Bağlam
Scripting katmanı, birine ihtiyaç duyan belgeler için kontrollü bir JavaScript değerlendirme bağlamı sağlar. Bilerek politika odaklıdır: modül çözümlemesi açıkça yapılır ve hatalar tiplenmiş istisnalar olarak ortaya çıkar.
Değerlendirme Bağlamı
JSContext betik değerlendirmesini barındırır. Değerlendirme sırasında ortaya çıkan hatalar JSEvaluationError olarak görüntülenir, böylece betik hataları Python-tarafı hatalardan ayrı tutulur.
Modül Yükleme
Modül çözümlemesi ModuleRegistry tarafından yönetilir; bu, modül belirteçlerini uygulamalara eşler. Eksik modüller, sessizce taslak döndürmek yerine ModuleNotFoundError (kütüphanenin kendi tiplenmiş hatası) oluşturur.
Yükleme Politikaları
ModuleLoadPolicy bir bağlamın neyi yükleyebileceğini kontrol eder — keyfi modül erişiminin istenmediği sunucu tarafı işleme sırasında betik davranışını sandbox’lamak için mekanizma.
İpuçları ve En İyi Uygulamalar
- İşleme senaryonuzun ihtiyaç duyduğu modülleri yalnızca kaydedin; küçük bir kayıt defteri sandbox’tur.
JSEvaluationError‘i genel istisnalardan ayrı yakalayarak betik hatalarını boru hattı hatalarından ayırın.ModuleNotFoundError‘i ölümcül bir durum yerine bir politika sinyali olarak ele alın — genellikle girdinin, sağlamadığınız bir tarayıcı API’i beklediği anlamına gelir.
Yaygın Sorunlar
| Sorun | Neden | Düzeltme |
|---|---|---|
ModuleNotFoundError değerlendirme sırasında | Modül kaydedilmedi | ModuleRegistry içine ekleyin veya politikayı ayarlayın |
| Betik hatası, işlem hattını çökertiyor | JSEvaluationError yakalanmadı | Değerlendirme sınırında ele alın |
| Beklenmeyen modül erişimi | Politika çok izin verici | Sıkılaştır ModuleLoadPolicy |
FAQ
Ayrıştırma için betik değerlendirmesi gerekli mi?
Hayır — ayrıştırma, CSSOM ve yerleşim, herhangi bir betik bağlamı olmadan çalışır.
Betiklerin neyi içe aktarabileceğini nasıl kontrol ederim?
ModuleRegistry (ne mevcut) ve ModuleLoadPolicy (ne yüklenebilir) aracılığıyla.
Betik hataları nasıl ortaya çıkar?
Python tarafında JSEvaluationError istisnaları olarak.
API Reference Özeti
| Sınıf/Yöntem | Açıklama |
|---|---|
JSContext | JavaScript değerlendirme bağlamı |
ModuleRegistry | Modül belirteci kaydı |
ModuleLoadPolicy | Modül yükleme politikası kontrolü |
JSEvaluationError | Tipli script-değerlendirme hatası |
ModuleNotFoundError | Tipli missing-module hatası |