Pencere ve Çalışma Zamanı Ortamı
Pencere ve Çalışma Zamanı Ortamı
Bazı belgeler bir gezinme ortamı — bir pencere, bir konum, depolama, olaylar — varsayar. Bu katman bu nesneleri saf Python içinde modeller, böylece bu belgeler tarayıcı olmadan sunucu tarafında işlenebilir.
Pencere Nesnesi
Window ortamı sabitler, WindowEventLoop olay işleme sürecini yönlendirir ve Screen, VisualViewport ve BarProp görüntüyle ilgili durumu modeller. BrowsingContext bir pencereyi belgesine bağlar.
Gezinti Durumu
Location ve History adres ve oturum geçmişini modeler; Navigator ortam kimliğini raporlar, set_default_user_agent() aracılığıyla yapılandırılabilir.
Olaylar
EventTarget arayüzü, Event ailesi — CustomEvent, UIEvent, MouseEvent, KeyboardEvent, FocusEvent, InputEvent, PopStateEvent, HashChangeEvent, ErrorEvent — standart olay dağıtımını uygular. AbortController ve AbortSignal iptali sağlar.
Depolama ve Mesajlaşma
Storage, anahtar-değer web depolamasını modellemektedir. MessageChannel, MessagePort ve BroadcastChannel, mesaj iletimini kapsar, arkasında yapılandırılmış-klon yardımcıları (clone_value) bulunur.
Gözlemciler ve Performans
IntersectionObserver ve ResizeObserver (giriş türleriyle birlikte) gözlem API’lerini modeller, Performance, PerformanceEntry ve Console ise yaygın olarak temas edilen çalışma zamanı hizmetleri betiklerini tamamlar.
İpuçları ve En İyi Uygulamalar
- Bu katmana yalnızca ortam durumuna gerçekten bağımlı belgeleri işlerken dokunun — ayrıştırma ve stil verme asla buna ihtiyaç duymaz.
- Aşağı akış mantığı
Navigatorkimliğine göre dallandığındaset_default_user_agent()kullanın. - Temiz iptal için
AbortSignal‘ı uzun süren işleme bağlayın
Yaygın Sorunlar
| Sorun | Neden | Düzeltme |
|---|---|---|
| Betik, window global değişkenlerini bekliyor | Tarayıcılar için hazırlanmış belge | Window ortam katmanını sağlayın |
| Olaylar hiçbir zaman tetiklenmez | Dağıtımı yönlendiren bir olay döngüsü yok | Kullan WindowEventLoop |
| Kullanıcı aracısına bağımlı dal hatalı davranıyor | Etkin varsayılan UA dizesi | set_default_user_agent() aracılığıyla ayarlanır |
FAQ
HTML’ı ayrıştırmak için bir Window’a ihtiyacım var mı?
Hayır — ortam katmanı isteğe bağlıdır; ayrıştırma, CSSOM ve yerleşim ondan bağımsızdır.
Hangi olay türleri modelleniyor?
Standart aile: UI, fare, klavye, odak, giriş, popstate, hashchange, hata ve özel olaylar, hepsi EventTarget üzerinden dağıtılır.
Web depolama kalıcı mı?
Storage, işleme amaçları için API yüzeyini modellemektedir; kalıcılık gömülü uygulamaya bağlıdır.
API Reference Özeti
| Sınıf/Yöntem | Açıklama |
|---|---|
Window | Gezinti ortamı bağlantı noktası |
Location | Adres durumu |
History | Oturum geçmişi |
EventTarget | Olay gönderim arayüzü |
AbortController | İptal denetleyicisi |
IntersectionObserver | Kesişim gözlemi |
set_default_user_agent | Navigator kimliğini yapılandır |