วิธีใช้ JavaScript Context ใน Python
ชั้นสคริปต์ของ Aspose.HTML FOSS สำหรับ Python มีความชัดเจนและขับเคลื่อนด้วยนโยบาย: ไม่มีอะไรทำงานระหว่างการพาร์ส และเมื่อคุณประเมินสคริปต์, JSContext จะเรียกใช้งานพวกมันโดยที่การเข้าถึงโมดูลถูกควบคุมโดย ModuleRegistry และ ModuleLoadPolicy. คู่มือนี้อธิบายส่วนประกอบและโมเดลการล้มเหลว โดยใช้ pip สำหรับการติดตั้ง.
คู่มือแบบทีละขั้นตอน
ขั้นตอนที่ 1: ติดตั้งแพคเกจ
git clone https://github.com/aspose-html-foss/Aspose.HTML-FOSS-for-Python.git
cd Aspose.HTML-FOSS-for-Python
pip install -e .ขั้นตอนที่ 2: นำเข้าคลาสที่จำเป็น
from aspose_html.js import JSContext, ModuleRegistry, ModuleLoadPolicyขั้นตอนที่ 3: ทำความเข้าใจโมเดลการประเมินค่า
JSContext เป็นโฮสต์ของการประเมินค่า. ความล้มเหลวของสคริปต์ปรากฏเป็น JSEvaluationError ที่พิมพ์บนด้าน Python, ทำให้บั๊กของสคริปต์แยกจากบั๊กของ pipeline.
ขั้นตอนที่ 4: ควบคุมการเข้าถึงโมดูล
ModuleRegistry ทำการแมปตัวระบุโมดูลไปยังการใช้งาน — เรจิสทรีคือ sandbox. โมดูลที่หายไปจะทำให้ไลบรารีโยน ModuleNotFoundError ที่พิมพ์; ModuleLoadPolicy กำหนดว่าบริบทสามารถโหลดอะไรได้บ้าง.
ปัญหาทั่วไปและวิธีแก้
การประเมินทำให้เกิด ModuleNotFoundError. สคริปต์นำเข้าโมดูลที่คุณยังไม่ได้ลงทะเบียน — เพิ่มมันลงใน ModuleRegistry หรือถือข้อผิดพลาดเป็นสัญญาณนโยบาย.
ความล้มเหลวของสคริปต์ทำให้ไพป์ไลน์หยุดทำงาน. Catch JSEvaluationError ที่ขอบเขตการประเมิน.
สคริปต์เข้าถึงมากกว่าที่ตั้งใจไว้. Tighten ModuleLoadPolicy และทำให้รีจิสทรีเล็กลง — รีจิสทรีขนาดเล็กคือตรงประเด็น.
คำถามที่พบบ่อย
สคริปต์ทำงานระหว่างการพาร์สหรือไม่?
ไม่มี การพาร์สไม่เคยเรียกใช้สคริปต์; การประเมินผลต้องทำอย่างชัดเจนผ่าน JSContext.
ฉันจะทำ sandbox พฤติกรรมของสคริปต์อย่างไร?
ลงทะเบียนโมดูลที่จำเป็นเท่านั้นใน ModuleRegistry และจำกัดการโหลดด้วย ModuleLoadPolicy.
ข้อผิดพลาดของสคริปต์ปรากฏใน Python อย่างไร?
เป็นข้อยกเว้นของ JSEvaluationError.