Cửa sổ và Môi trường Thực thi

Cửa sổ và Môi trường Thực thi

Cửa sổ và Môi trường Thời gian chạy

Một số tài liệu giả định môi trường duyệt — một cửa sổ, một vị trí, bộ nhớ, sự kiện. Lớp này mô hình hoá các đối tượng đó trong Python thuần túy để các tài liệu như vậy có thể được xử lý phía máy chủ mà không cần trình duyệt.


Đối tượng Cửa sổ

Window neo môi trường, với WindowEventLoop điều khiển việc xử lý sự kiện, và Screen, VisualViewport, và BarProp mô hình hoá trạng thái liên quan đến hiển thị. BrowsingContext liên kết một cửa sổ với tài liệu của nó.

Trạng thái Điều hướng

Location và History mô hình địa chỉ và lịch sử phiên; Navigator báo cáo danh tính môi trường, có thể cấu hình qua set_default_user_agent().

Sự kiện

Giao diện EventTarget với họ Event — CustomEvent, UIEvent, MouseEvent, KeyboardEvent, FocusEvent, InputEvent, PopStateEvent, HashChangeEvent, ErrorEvent — thực thi việc phát sự kiện theo tiêu chuẩn. AbortController và AbortSignal cung cấp khả năng hủy.

Lưu trữ và Nhắn tin

Storage mô hình lưu trữ web kiểu khóa-giá trị. MessageChannel, MessagePort, và BroadcastChannel bao gồm việc truyền tin nhắn, với các trợ giúp structured-clone (clone_value) phía sau chúng.

Quan sát và Hiệu năng

IntersectionObserver và ResizeObserver (với các kiểu mục nhập của chúng) mô hình các API quan sát, trong khi Performance, PerformanceEntry, và Console hoàn thiện các kịch bản dịch vụ thời gian chạy mà thường được chạm tới.


Mẹo và Thực hành Tốt nhất

  • Chỉ can thiệp lớp này khi xử lý các tài liệu thực sự phụ thuộc vào trạng thái môi trường — việc phân tích và định kiểu không bao giờ cần đến nó.
  • Sử dụng set_default_user_agent() khi logic hạ nguồn phân nhánh dựa trên danh tính Navigator.
  • Kết nối AbortSignal vào quá trình xử lý kéo dài để hủy một cách sạch sẽ

Các vấn đề thường gặp

Vấn đềNguyên nhânKhắc phục
Kịch bản mong đợi các biến toàn cục của windowTài liệu được viết cho trình duyệtCung cấp lớp môi trường Window
Sự kiện không bao giờ được kích hoạtKhông có vòng lặp sự kiện nào điều khiển việc gửiSử dụng WindowEventLoop
Nhánh phụ thuộc vào user-agent hoạt động không đúngChuỗi UA mặc định đang có hiệu lựcĐược thiết lập qua set_default_user_agent()

FAQ

Tôi có cần một Window để phân tích HTML không?

Không — lớp môi trường là tùy chọn; việc phân tích, CSSOM và bố cục đều độc lập với nó.

Các loại sự kiện nào được mô hình hoá?

Nhóm tiêu chuẩn: UI, chuột, bàn phím, focus, input, popstate, hashchange, error và các sự kiện tùy chỉnh, tất cả được phát qua EventTarget.

Lưu trữ web có bền vững không?

Storage mô hình bề mặt API cho mục đích xử lý; việc duy trì phụ thuộc vào ứng dụng nhúng.


Tóm tắt API Reference

Lớp/Phương thứcMô tả
WindowMỏ neo môi trường duyệt
LocationTrạng thái địa chỉ
HistoryLịch sử phiên làm việc
EventTargetGiao diện phân phối sự kiện
AbortControllerBộ điều khiển hủy
IntersectionObserverQuan sát giao điểm
set_default_user_agentCấu hình danh tính Navigator

Xem thêm

 Tiếng Việt