Παράθυρο και Περιβάλλον Εκτέλεσης

Παράθυρο και Περιβάλλον Εκτέλεσης

Παράθυρο και Περιβάλλον Εκτέλεσης

Ορισμένα έγγραφα υποθέτουν ένα περιβάλλον περιήγησης — ένα παράθυρο, μια τοποθεσία, αποθήκευση, γεγονότα. Αυτό το στρώμα μοντελοποιεί αυτά τα αντικείμενα σε καθαρό Python ώστε τέτοια έγγραφα να μπορούν να επεξεργαστούν στο διακομιστή χωρίς πρόγραμμα περιήγησης.


Το αντικείμενο Window

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 μοντελοποιεί αποθήκευση web κλειδιού-τιμής. Το MessageChannel, το MessagePort και το BroadcastChannel καλύπτουν τη μετάδοση μηνυμάτων, με βοηθητικά προγράμματα structured-clone (clone_value) πίσω τους.

Παρατηρητές και Απόδοση

IntersectionObserver και ResizeObserver (με τους τύπους καταχώρησής τους) μοντελοποιούν τα API παρατήρησης, ενώ το Performance, το PerformanceEntry και το Console ολοκληρώνουν τα σενάρια υπηρεσιών χρόνου εκτέλεσης που συνήθως αγγίζονται.


Συμβουλές και Καλές Πρακτικές

  • Αγγίξτε αυτό το επίπεδο μόνο όταν επεξεργάζεστε έγγραφα που πραγματικά εξαρτώνται από την κατάσταση του περιβάλλοντος — η ανάλυση και η μορφοποίηση δεν το απαιτούν ποτέ.
  • Χρησιμοποιήστε το set_default_user_agent() όταν η λογική προς τα κάτω διακλαδίζεται με βάση την ταυτότητα του Navigator
  • Συνδέστε το AbortSignal σε μακροχρόνια επεξεργασία για καθαρό τερματισμό

Συνηθισμένα προβλήματα

ΠρόβλημαΑιτίαΔιόρθωση
Το script περιμένει καθολικές μεταβλητές του windowΈγγραφο συντάχθηκε για προγράμματα περιήγησηςΠαρέχετε τη στρώση περιβάλλοντος Window
Τα γεγονότα δεν ενεργοποιούνται ποτέΔεν υπάρχει βρόχος γεγονότων που να οδηγεί στην αποστολήΧρησιμοποιήστε WindowEventLoop
Το κλαδί εξαρτημένο από τον user-agent συμπεριφέρεται λανθασμέναΗ προεπιλεγμένη συμβολοσειρά UA σε ισχύΟρίζεται μέσω set_default_user_agent()

FAQ

Χρειάζομαι ένα Window για την ανάλυση του HTML;

Όχι — η στρώση του περιβάλλοντος είναι προαιρετική· η ανάλυση, το CSSOM και η διάταξη είναι ανεξάρτητα από αυτήν.

Ποιοι τύποι συμβάντων μοντελοποιούνται;

Η τυπική οικογένεια: UI, mouse, keyboard, focus, input, popstate, hashchange, error, και προσαρμοσμένα γεγονότα, όλα διανέμονται μέσω του EventTarget.

Είναι το web storage μόνιμο;

Storage μοντελοποιεί την επιφάνεια του API για σκοπούς επεξεργασίας· η διατήρηση εξαρτάται από την εφαρμογή ενσωμάτωσης.


API Reference Περίληψη

Κλάση/ΜέθοδοςΠεριγραφή
WindowΑγκύρα περιβάλλοντος περιήγησης
LocationΚατάσταση διεύθυνσης
HistoryΙστορικό συνεδρίας
EventTargetΔιεπαφή διανομής συμβάντων
AbortControllerΕλεγκτής ακύρωσης
IntersectionObserverΠαρατήρηση διασταύρωσης
set_default_user_agentΔιαμόρφωση ταυτότητας Navigator

Δείτε επίσης

 Ελληνικά