Ngữ cảnh JavaScript
JavaScript Ngữ cảnh
Lớp kịch bản cung cấp một ngữ cảnh đánh giá JavaScript có kiểm soát cho các tài liệu cần nó. Nó được thiết kế cố ý dựa trên chính sách: việc phân giải mô-đun là rõ ràng, và các lỗi sẽ xuất hiện dưới dạng các ngoại lệ đã được định kiểu.
Ngữ cảnh Đánh giá
JSContext chịu trách nhiệm thực thi script. Các lỗi phát sinh trong quá trình đánh giá sẽ xuất hiện dưới dạng JSEvaluationError, giữ cho các lỗi script tách biệt khỏi các lỗi phía Python.
Tải mô-đun
Việc phân giải mô-đun được điều khiển bởi ModuleRegistry, nó ánh xạ các chỉ định mô-đun tới các triển khai. Các mô-đun bị thiếu sẽ ném ModuleNotFoundError (lỗi đã được định kiểu riêng của thư viện) thay vì im lặng trả về các stub.
Chính sách Tải
ModuleLoadPolicy kiểm soát những gì một ngữ cảnh được phép tải — cơ chế cô lập hành vi script trong xử lý phía máy chủ khi việc truy cập mô-đun tùy ý không mong muốn.
Mẹo và Thực hành tốt nhất
- Chỉ đăng ký các mô-đun mà kịch bản xử lý của bạn cần; một danh sách đăng ký nhỏ là sandbox
- Bắt
JSEvaluationErrorriêng biệt so với các ngoại lệ chung để phân biệt lỗi script với lỗi pipeline - Xem
ModuleNotFoundErrornhư một tín hiệu chính sách, không phải là một điều kiện nghiêm trọng — nó thường có nghĩa là đầu vào mong đợi một API của trình duyệt mà bạn đã chọn không cung cấp
Các vấn đề thường gặp
| Vấn đề | Nguyên nhân | Khắc phục |
|---|---|---|
ModuleNotFoundError trong quá trình đánh giá | Mô-đun chưa được đăng ký | Thêm nó vào ModuleRegistry hoặc điều chỉnh chính sách |
| Lỗi script làm sập pipeline | JSEvaluationError không được bắt | Xử lý nó tại ranh giới đánh giá |
| Truy cập mô-đun không mong đợi | Chính sách quá khoan dung | Thắt chặt ModuleLoadPolicy |
FAQ
Có cần đánh giá script để phân tích không?
Không — việc phân tích, CSSOM và bố cục hoạt động mà không cần bất kỳ ngữ cảnh script nào.
Làm sao tôi có thể kiểm soát các script có thể nhập gì?
Thông qua ModuleRegistry (cái gì tồn tại) và ModuleLoadPolicy (cái gì có thể tải).
Làm sao lỗi script xuất hiện?
Dưới dạng các ngoại lệ JSEvaluationError ở phía Python.
API Reference Tóm tắt
| Lớp/Phương thức | Mô tả |
|---|---|
JSContext | JavaScript ngữ cảnh đánh giá |
ModuleRegistry | Đăng ký định danh mô-đun |
ModuleLoadPolicy | Kiểm soát chính sách tải mô-đun |
JSEvaluationError | Lỗi đánh giá script có kiểu |
ModuleNotFoundError | Lỗi thiếu mô-đun có kiểu |