HTML <script> ιδιότητα async
Ορισμός και χρήση
async
Η ιδιότητα είναι μια μοναδική ιδιότητα.
Αν έχει οριστεί async
Η ιδιότητα, το σκεπτικό κατεβάζεται παράλληλα με την ανάλυση της σελίδας και εκτελείται αμέσως όταν είναι διαθέσιμο. Μόλις κατεβεί το σκεπτικό πλήρως, διακόπτεται η ανάλυση της σελίδας, εκτελείται το σκεπτικό και στη συνέχεια συνεχίζεται η ανάλυση της υπόλοιπης σελίδας.
Λưu ý:async
Η ιδιότητα αυτή εφαρμόζεται μόνο στα εξωτερικά σκεπτικά (και πρέπει να χρησιμοποιείται μόνο όταν υπάρχει η ιδιότητα src).
Λưu ý:Η εκτέλεση εξωτερικών σκεπτογραμμάτων μπορεί να γίνει με πολλούς τρόπους:
- Αν έχει οριστεί async: το σκεπτικό κατεβάζεται παράλληλα με την ανάλυση της σελίδας και εκτελείται αμέσως όταν είναι διαθέσιμο (πριν ολοκληρωθεί η ανάλυση)
- Αν έχει οριστεί defer (αλλά δεν έχει οριστεί async): το σκεπτικό κατεβάζεται παράλληλα με την ανάλυση της σελίδας και εκτελείται όταν ολοκληρωθεί η ανάλυση της σελίδας
- Αν δεν έχει οριστεί ни async, ні defer: το σκεπτικό κατεβάζεται και εκτελείται αμέσως, μπλοκάρει την ανάλυση της σελίδας μέχρι να ολοκληρωθεί η εκτέλεση του σκεπτογραμματος
Παράδειγμα
Η αναφερόμενη σελίδα θα κατεβάσει τα σκεπτικά παράλληλα με την ανάλυση της σελίδας και θα εκτελεστεί αμέσως όταν είναι διαθέσιμη:
<script src="demo_async.js" async></script>
Γλώσσα
<script async>
Ασύγχρονη εκτέλεση σκεπτογραμμάτων
Η προεπιλεγμένη συμπεριφορά του περιηγητή όταν αντιμετωπίζει το στοιχείο script είναι να σταματήσει την επεξεργασία της σελίδας ενώ φορτώνει και εκτελεί το σκεπτικό. Οι διάφοροι στοιχεία script εκτελούνται σε σειρά (σύμφωνα με τη διατύπωσή τους) συγχρονισμένα (δεν ερωτεύονται άλλες δραστηριότητες κατά τη διάρκεια φόρτωσης και εκτέλεσης του σκεπτογραμματος).
Ως προεπιλεγμένη μέθοδος χειρισμού των σκεπτογραμμάτων, η συγχρονισμένη και οριζόντια εκτέλεση έχει τη δική της σημασία. Ωστόσο, υπάρχουν σκεπτογράμματα που δεν χρειάζονται τέτοια επεξεργασία, για τα οποία μπορεί να χρησιμοποιηθεί async
ιδιότητες για να βελτιώσουν την απόδοσή τους. Ένας τυπικός παράδειγμα είναι τα scripts παρακολούθησης (tracking scripts). Αυτά τα scripts μπορούν να αναφέρουν τα ιστορικά επισκέψεων των χρηστών στον ιστότοπο για να επιτρέψουν στις εταιρείες διαφημίσεων να προσαρμόσουν και να διαφημίσουν τις διαφημίσεις τους ανάλογα με τις συνήθειες των χρηστών, ή να συλλέξουν στατιστικά δεδομένα για την ανάλυση, κ.λπ. Αυτά τα scripts λειτουργούν ανεξάρτητα και συνήθως δεν χρειάζονται να συνεργάζονται με τα στοιχεία του HTML. Είναι άχρηστο να αναβράζουν την εμφάνιση της σελίδας για να περιμένουν να φορτώσουν και να στείλουν αναφορές στον διακομιστή τους.
Χρησιμοποιούνται async
Με την ιδιότητα, ο περιηγητής θα φορτώσει και θα εκτελέσει το σενάριο ασynchronously ενώ συνεχίζει να αναλύει άλλους στοιχεία HTML (συμπεριλαμβανομένων άλλων στοιχείων script). Αν χρησιμοποιηθεί σωστά, αυτό μπορεί να βελτιώσει σημαντικά την απόδοση φόρτωσης.
Λưu ý:Χρήση async
Μια σημαντική συνέπεια της ιδιότητας είναι ότι τα σενάρια στην ιστοσελίδα μπορεί να μην εκτελούνται στο σωστό σειριακό στυλ που ορίστηκαν. Επομένως, αν τα σενάρια χρησιμοποιούν λειτουργίες ή τιμές που ορίστηκαν σε άλλα σενάρια, δεν πρέπει να χρησιμοποιούνται async
Πρότυπο.
Υποστήριξη προγράμματος περιήγησης
Τα αριθμήματα στη τаблицή σημειώνουν την έκδοση του πρώτου προγράμματος περιήγησης που υποστηρίζει αυτήν την ιδιότητα πλήρως.
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome | Edge | Firefox | Safari | Opera |
8.0 | 10.0 | 3.6 | 5.1 | 15.0 |