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 | टाइप्ड मिसिंग-मॉड्यूल विफलता |