Ο σχεδιασμός της ιστοσελίδας σας χρησιμοποιώντας JavaScript απαιτεί προσοχή στη σειρά με την οποία εμφανίζεται ο κώδικάς σας και είτε ενσωματώνετε κώδικα σε συναρτήσεις ή αντικείμενα, τα οποία επηρεάζουν τη σειρά με την οποία ο κώδικας τρέχει.
Η τοποθεσία της JavaScript στην ιστοσελίδα σας
Δεδομένου ότι το JavaScript στη σελίδα σας εκτελείται βάσει ορισμένων παραγόντων, ας εξετάσουμε πού και πώς να προσθέσουμε JavaScript σε μια ιστοσελίδα.
Υπάρχουν βασικά τρεις τοποθεσίες στις οποίες μπορούμε να επισυνάψουμε JavaScript:
- Απευθείας στην αρχή της σελίδας
- Απευθείας στο σώμα της σελίδας
- Από χειριστή / ακροατή συμβάντων
Δεν έχει καμία διαφορά αν το JavaScript είναι εντός της ιστοσελίδας το ίδιο ή σε εξωτερικά αρχεία που συνδέονται με τη σελίδα. Επίσης, δεν έχει σημασία αν οι χειριστές συμβάντων είναι κωδικοποιημένοι στη σελίδα ή προστίθενται από το ίδιο το JavaScript (εκτός από το ότι δεν μπορούν να ενεργοποιηθούν προτού προστεθούν).
Κωδικός απευθείας στη σελίδα
Τι σημαίνει να πούμε ότι είναι το JavaScript
κατευθείαν στο κεφάλι ή το σώμα της σελίδας; Εάν ο κωδικός δεν περικλείεται σε μια συνάρτηση ή αντικείμενο, είναι απευθείας στη σελίδα. Σε αυτήν την περίπτωση, ο κώδικας εκτελείται διαδοχικά μόλις το αρχείο που περιέχει τον κώδικα έχει φορτωθεί επαρκώς για την πρόσβαση σε αυτόν τον κώδικα.Ο κώδικας που βρίσκεται μέσα σε μια συνάρτηση ή αντικείμενο εκτελείται μόνο όταν καλείται η συνάρτηση ή το αντικείμενο.
Βασικά, αυτό σημαίνει ότι οποιοσδήποτε κώδικας εντός της κεφαλής και του σώματος της σελίδας σας που δεν βρίσκεται μέσα σε μια συνάρτηση ή αντικείμενο θα εκτελείται καθώς η σελίδα φορτώνει - μόλις η σελίδα έχει φορτώσει αρκετά για να αποκτήσει πρόσβαση σε αυτόν τον κωδικό.
Αυτό το τελευταίο κομμάτι είναι σημαντικό και επηρεάζει τη σειρά με την οποία τοποθετείτε τον κωδικό σας στη σελίδα: πρέπει να εμφανίζεται οποιοσδήποτε κωδικός τοποθετείται απευθείας στη σελίδα που πρέπει να αλληλεπιδρά με στοιχεία εντός της σελίδας. μετά τα στοιχεία στη σελίδα από την οποία εξαρτάται.
Σε γενικές γραμμές, αυτό σημαίνει ότι εάν χρησιμοποιείτε άμεσο κώδικα για να αλληλεπιδράσετε με το περιεχόμενο της σελίδας σας, αυτός ο κωδικός θα πρέπει να τοποθετείται στο κάτω μέρος του κυρίως σώματος.
Κωδικός εντός συναρτήσεων και αντικειμένων
Ένας κώδικας μέσα σε συναρτήσεις ή αντικείμενα εκτελείται κάθε φορά που καλείται η συνάρτηση ή το αντικείμενο. Εάν καλείται από κωδικό που βρίσκεται απευθείας στην κεφαλή ή το σώμα της σελίδας, τότε η θέση του στο η εντολή εκτέλεσης είναι ουσιαστικά το σημείο στο οποίο η συνάρτηση ή το αντικείμενο καλείται από την άμεση κώδικας.
Κωδικός που εκχωρήθηκε σε χειριστές συμβάντων και ακροατές
Η εκχώρηση μιας συνάρτησης σε έναν χειριστή συμβάντων ή έναν ακροατή δεν οδηγεί στην εκτέλεση της συνάρτησης στο σημείο στο οποίο έχει εκχωρηθεί - υπό την προϋπόθεση ότι είστε πραγματικά εκχώρηση η ίδια η λειτουργία και Δεν τρεχω τη συνάρτηση και εκχώρηση της τιμής που επιστρέφεται. (Αυτός είναι ο λόγος που γενικά δεν βλέπετε το () στο τέλος του ονόματος της συνάρτησης όταν εκχωρείται σε ένα συμβάν από την προσθήκη του παρένθεση εκτελεί τη συνάρτηση και εκχωρεί την τιμή που επιστρέφεται αντί να εκχωρεί τη συνάρτηση εαυτό.)
Οι συναρτήσεις που συνδέονται με τους χειριστές συμβάντων και τους ακροατές εκτελούνται όταν ενεργοποιείται το συμβάν στο οποίο είναι συνδεδεμένα. Τα περισσότερα συμβάντα ενεργοποιούνται από επισκέπτες που αλληλεπιδρούν με τη σελίδα σας. Υπάρχουν ορισμένες εξαιρέσεις, όπως το φορτώνω συμβάν στο ίδιο το παράθυρο, το οποίο ενεργοποιείται όταν ολοκληρωθεί η φόρτωση της σελίδας.
Συνδεδεμένες συναρτήσεις σε συμβάντα στα στοιχεία σελίδας
Τυχόν συναρτήσεις που συνδέονται με συμβάντα σε στοιχεία της ίδιας της σελίδας θα εκτελούνται σύμφωνα με τις ενέργειες κάθε μεμονωμένου επισκέπτη - αυτός ο κώδικας εκτελείται μόνο όταν συμβεί ένα συγκεκριμένο συμβάν για την ενεργοποίησή του. Για αυτόν τον λόγο, δεν έχει σημασία αν ο κώδικας δεν τρέχει ποτέ για έναν συγκεκριμένο επισκέπτη, δεδομένου ότι ο επισκέπτης προφανώς δεν έχει εκτελέσει την αλληλεπίδραση που την απαιτεί.
Όλα αυτά, φυσικά, υποθέτουν ότι ο επισκέπτης σας έχει αποκτήσει πρόσβαση στη σελίδα σας με ένα πρόγραμμα περιήγησης που έχει JavaScript ενεργοποιήθηκε.
Προσαρμοσμένα σενάρια χρηστών επισκεπτών
Ορισμένοι χρήστες έχουν εγκαταστήσει ειδικά σενάρια που ενδέχεται να αλληλεπιδράσουν με την ιστοσελίδα σας. Αυτά τα σενάρια εκτελούνται μετά από όλο τον άμεσο κώδικα, αλλά πριν οποιοσδήποτε κώδικας που επισυνάπτεται στο πρόγραμμα χειρισμού φορτίου
Δεδομένου ότι η σελίδα σας δεν γνωρίζει τίποτα για αυτά τα σενάρια χρήστη, δεν έχετε κανέναν τρόπο να γνωρίζετε τι θα μπορούσαν να κάνουν αυτά τα εξωτερικά σενάρια - θα μπορούσαν να παρακάμψουν οποιοδήποτε ή όλο τον κώδικα που έχετε επισυνάψει στα διάφορα συμβάντα στα οποία έχετε εκχωρήσει επεξεργασία. Εάν αυτός ο κώδικας παρακάμπτει τους χειριστές συμβάντων ή τους ακροατές, η απόκριση σε ενεργοποιητές συμβάντων θα εκτελέσει τον κώδικα που ορίζεται από τον χρήστη αντί για τον κωδικό σας ή επιπλέον.
Το βασικό σημείο εδώ είναι ότι δεν μπορείτε να υποθέσετε ότι ο κώδικας που έχει σχεδιαστεί για εκτέλεση μετά τη φόρτωση της σελίδας θα επιτρέπεται να εκτελεί τον τρόπο που τον σχεδιάσατε. Επιπλέον, να γνωρίζετε ότι ορισμένα προγράμματα περιήγησης έχουν επιλογές που επιτρέπουν την απενεργοποίηση ορισμένων χειριστών συμβάντων εντός του πρόγραμμα περιήγησης, οπότε μια σχετική ενεργοποίηση συμβάντων δεν θα εκκινήσει τον αντίστοιχο χειριστή / ακροατή συμβάντων στη δική σας κώδικας.