JavaScript 컨텍스트

JavaScript 컨텍스트

스크립팅 계층은 JavaScript 평가 컨텍스트가 필요한 문서에 대해 제어된 컨텍스트를 제공합니다. 이는 정책 중심으로 설계되어 모듈 해석이 명시적이며, 실패는 타입이 지정된 예외로 표출됩니다.


평가 컨텍스트

JSContext는 스크립트 평가를 호스팅합니다. 평가 중 발생한 오류는 JSEvaluationError으로 표출되어 스크립트 실패를 Python 측 오류와 구분합니다.

모듈 로드

모듈 해석은 ModuleRegistry에 의해 관리되며, 모듈 지정자를 구현으로 매핑합니다. 누락된 모듈은 (라이브러리 고유의 타입 오류인) ModuleNotFoundError을 발생시켜, 조용히 스텁을 반환하지 않습니다.

로드 정책

ModuleLoadPolicy는 컨텍스트가 로드할 수 있는 것을 제어합니다 — 임의의 모듈 접근이 원치 않을 때 서버 측 처리에서 스크립트 동작을 샌드박스화하는 메커니즘입니다.


팁 및 모범 사례

  • 처리 시나리오에 필요한 모듈만 등록하세요; 작은 레지스트리가 바로 샌드박스입니다.
  • JSEvaluationError를 일반 예외와 별도로 잡아 스크립트 버그와 파이프라인 버그를 구분하세요.
  • ModuleNotFoundError를 치명적인 상황이 아니라 정책 신호로 다루세요 — 이는 종종 입력이 제공하지 않기로 선택한 브라우저 API를 기대한다는 의미입니다.

일반적인 문제

문제원인해결 방법
ModuleNotFoundError 평가 시모듈이 등록되지 않음ModuleRegistry에 추가하거나 정책을 조정하세요
스크립트 실패로 파이프라인이 중단됩니다JSEvaluationError이(가) 포착되지 않음평가 경계에서 처리하십시오
예기치 않은 모듈 액세스정책이 너무 관대함강화 ModuleLoadPolicy

FAQ

구문 분석에 스크립트 평가가 필요합니까?

아니요 — 구문 분석, CSSOM 및 레이아웃은 스크립트 컨텍스트 없이도 작동합니다.

스크립트가 가져올 수 있는 것을 어떻게 제어하나요?

다음 ModuleRegistry (존재하는 것) 및 ModuleLoadPolicy (로드될 수 있는 것)을 통해.

스크립트 오류는 어떻게 표시되나요?

Python 측면에서 JSEvaluationError 예외로 나타납니다.


API Reference 요약

Class/Method설명
JSContextJavaScript 평가 컨텍스트
ModuleRegistry모듈 지정자 레지스트리
ModuleLoadPolicy모듈 로딩 정책 제어
JSEvaluationError타입된 스크립트-평가 실패
ModuleNotFoundError타입된 누락-모듈 실패

참조

 한국어