윈도우 및 런타임 환경

윈도우 및 런타임 환경

윈도우 및 런타임 환경

일부 문서는 브라우징 환경(윈도우, 위치, 저장소, 이벤트)을 전제로 합니다. 이 레이어는 순수 Python에서 이러한 객체들을 모델링하여 브라우저 없이도 서버 측에서 해당 문서를 처리할 수 있게 합니다.


윈도우 객체

Window은(는) 환경을 고정하고, WindowEventLoop은(는) 이벤트 처리를 주도하며, Screen, VisualViewport, BarProp는 디스플레이 관련 상태를 모델링합니다. BrowsingContext는 윈도우를 문서와 연결합니다.

네비게이션 상태

Location와 History은 주소와 세션 히스토리를 모델링합니다; Navigator는 환경 식별자를 보고하며, 이는 set_default_user_agent()을 통해 구성할 수 있습니다.

이벤트

EventTarget 인터페이스와 Event 패밀리 — CustomEvent, UIEvent, MouseEvent, KeyboardEvent, FocusEvent, InputEvent, PopStateEvent, HashChangeEvent, ErrorEvent — 는 표준 이벤트 디스패치를 구현합니다. AbortController와 AbortSignal는 취소를 제공합니다.

스토리지 및 메시징

Storage는 키-값 웹 스토리지를 모델링합니다. MessageChannel, MessagePort, 및 BroadcastChannel는 메시지 전달을 다루며, 그 뒤에는 구조 복제 헬퍼(clone_value)가 있습니다.

옵저버와 성능

IntersectionObserver와 ResizeObserver(엔트리 타입 포함)은 관찰 API를 모델링하고, Performance, PerformanceEntry, 그리고 Console는 일반적으로 다루는 런타임 서비스 스크립트를 완성합니다.


팁 및 모범 사례

  • 환경 상태에 실제로 의존하는 문서를 처리할 때만 이 레이어를 건드리세요 — 파싱과 스타일링은 절대 필요하지 않습니다.
  • Navigator 정체성에 따라 하위 로직이 분기될 때 set_default_user_agent()를 사용하세요.
  • 깨끗한 취소를 위해 장기 실행 처리에 AbortSignal를 연결합니다

일반적인 문제

문제원인해결
스크립트가 window 전역 변수를 기대합니다문서는 브라우저용으로 작성되었습니다Window 환경 레이어를 제공하십시오
이벤트가 전혀 발생하지 않습니다디스패치를 구동하는 이벤트 루프가 없습니다WindowEventLoop 사용
User-agent 의존 브랜치가 오작동한다기본 UA 문자열이 적용 중set_default_user_agent()을(를) 통해 설정

FAQ

HTML를 구문 분석하려면 Window가 필요합니까?

아니요 — 환경 레이어는 선택 사항이며, 구문 분석, CSSOM 및 레이아웃은 그것과 독립적입니다.

모델링된 이벤트 유형은 무엇입니까?

표준 패밀리: UI, 마우스, 키보드, 포커스, 입력, popstate, hashchange, error 및 사용자 정의 이벤트가 모두 EventTarget를 통해 디스패치됩니다.

웹 스토리지는 지속적인가요?

Storage는 처리 목적을 위해 API 표면을 모델링합니다; 지속성은 포함 애플리케이션에 달려 있습니다.


API Reference 요약

클래스/메서드설명
Window브라우징 환경 앵커
Location주소 상태
History세션 기록
EventTarget이벤트 디스패치 인터페이스
AbortController취소 컨트롤러
IntersectionObserver교차점 관찰
set_default_user_agentNavigator 신원 구성

참조

 한국어