Window ו Runtime Environment
חלון וסביבת זמן ריצה
חלק מהמסמכים מניחים סביבת גלישה — חלון, מיקום, אחסון, אירועים. שכבה זו ממדלת את האובייקטים האלה ב-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 מכסים העברת הודעות, עם מסייעי structured-clone (clone_value) מאחוריהם.
צופים וביצועים
IntersectionObserver ו-ResizeObserver (עם סוגי הכניסה שלהם) ממדלים API של תצפית, בעוד Performance, PerformanceEntry ו-Console משלימים את סקריפטי שירותי זמן הריצה שנוגעים בהם בדרך כלל.
טיפים ושיטות עבודה מומלצות
- יש לגעת בשכבה זו רק בעת עיבוד מסמכים שתלויים באמת במצב הסביבה — ניתוח ועיצוב אף פעם אינם דורשים זאת.
- השתמש ב-
set_default_user_agent()כאשר הלוגיקה התחתונה מתפצלת על זהותNavigator - חבר את
AbortSignalלעיבוד ארוך-טווח לצורך ביטול נקי
בעיות נפוצות
| בעיה | סיבה | תיקון |
|---|---|---|
| הסקריפט מצפה ל-globals של Window | מסמך נכתב עבור דפדפנים | ספק את שכבת הסביבה Window |
| אירועים לעולם לא מתרחשות | אין לולאת אירועים שמניעה dispatch | השתמש WindowEventLoop |
| הענף התלוי ב-User-agent מתנהג באופן שגוי | מחרוזת UA ברירת המחדל בתוקף | הוגדר באמצעות set_default_user_agent() |
FAQ
האם אני צריך Window כדי לנתח HTML?
לא — ה-environment layer הוא אופציונלי; ניתוח, CSSOM ו-layout הם בלתי תלויים בו.
אילו סוגי event מודלים?
המשפחה הסטנדרטית: UI, mouse, keyboard, focus, input, popstate, hashchange, error, ו-custom events, כולם נשלחים דרך EventTarget.
האם web Storage מתמיד?
Storage ממדד את משטח ה-API למטרות עיבוד; האחסון תלוי ביישום המוטמע.
API Reference סיכום
| מחלקה/מתודה | תיאור |
|---|---|
Window | Browsing environment עוגן |
Location | מצב כתובת |
History | היסטוריית המושב |
EventTarget | ממשק הפצת אירועים |
AbortController | בקר ביטול |
IntersectionObserver | תצפית חיתוך |
set_default_user_agent | הגדר זהות Navigator |