سياق JavaScript
JavaScript السياق
توفر طبقة البرمجة النصية سياق تقييم JavaScript مُتحكم فيه للمستندات التي تحتاج إليه. إنها مُصممة عن قصد لتكون مدفوعة بالسياسة: حل الوحدات صريح، وتظهر الفشل كاستثناءات مُعرفة النوع.
سياق التقييم
JSContext يستضيف تقييم النصوص. الأخطاء التي تُرفع أثناء التقييم تظهر كـ JSEvaluationError، مما يحافظ على تمييز فشل النصوص عن الأخطاء الجانبية لـ Python.
تحميل الوحدة
يُحكم حل الوحدة بواسطة ModuleRegistry، الذي يربط محددات الوحدات بالتطبيقات. الوحدات المفقودة تُثير ModuleNotFoundError (خطأ مكتوب النوع الخاص بالمكتبة) بدلاً من إرجاع نماذج افتراضية بصمت.
سياسات التحميل
ModuleLoadPolicy يتحكم في ما يُسمح للسياق بتحميله — الآلية لعزل سلوك السكريبت في المعالجة على جانب الخادم حيث لا يُرغب في وصول عشوائي إلى الوحدات.
نصائح وأفضل الممارسات
- سجِّل فقط الوحدات التي يحتاجها سيناريو المعالجة الخاص بك؛ السجل الصغير هو العزل.
- التقط
JSEvaluationErrorبشكل منفصل عن الاستثناءات العامة للتمييز بين أخطاء السكريبت وأخطاء خط الأنابيب. - عامل
ModuleNotFoundErrorكإشارة سياسات، وليس كحالة قاتلة — غالبًا ما يعني أن الإدخال يتوقع API للمتصفح الذي اخترت عدم توفيره.
المشكلات الشائعة
| المشكلة | السبب | الإصلاح |
|---|---|---|
ModuleNotFoundError عند التقييم | الوحدة غير مسجلة | أضفها إلى ModuleRegistry أو عدّل السياسة |
| فشل السكريبت يتسبب في تعطل خط الأنابيب | JSEvaluationError غير مُلتقط | عالجها عند حدود التقييم |
| وصول غير متوقع إلى الوحدة | السياسة متساهلة جدًا | شدد ModuleLoadPolicy |
FAQ
هل يُطلب تقييم السكريبت من أجل التحليل؟
لا — التحليل، CSSOM، وتخطيط الصفحات يعملون دون أي سياق للسكريبت.
كيف يمكنني التحكم بما يمكن للسكريبتات استيراده؟
من خلال ModuleRegistry (ما هو موجود) و ModuleLoadPolicy (ما قد يتم تحميله).
كيف تظهر أخطاء السكريبت؟
كاستثناءات JSEvaluationError على جانب Python.
API Reference ملخص
| فئة/طريقة | وصف |
|---|---|
JSContext | JavaScript سياق التقييم |
ModuleRegistry | سجل مُحدِّد الوحدة |
ModuleLoadPolicy | التحكم في سياسة تحميل الوحدة |
JSEvaluationError | فشل تقييم البرنامج النصي المكتوب بنوع |
ModuleNotFoundError | فشل الوحدة المفقودة المكتوبة بنوع |