Όταν ενσωματώνετε JavaScript σε ένα έγγραφο HTML, πού είναι το κατάλληλο μέρος για να τοποθετήσετε τις ετικέτες <script>
και την ενσωματωμένη JavaScript; Θυμάμαι ότι δεν πρέπει να τα τοποθετείτε στην ενότητα <head>
, αλλά η τοποθέτηση στην αρχή της ενότητας <body>
είναι επίσης κακή, καθώς η JavaScript θα πρέπει να αναλυθεί πριν την πλήρη απόδοση της σελίδας (ή κάτι τέτοιο). Αυτό φαίνεται να αφήνει το τέλος του τμήματος <body>
ως λογικό μέρος για τις ετικέτες <script>
.
Οπότε, πού είναι το σωστό μέρος για να τοποθετηθούν οι ετικέτες <script>
;
(Αυτή η ερώτηση παραπέμπει στην αυτή την ερώτηση, στην οποία προτάθηκε να μεταφερθούν οι κλήσεις συναρτήσεων JavaScript από τις ετικέτες <a>
στις ετικέτες <script>
. Χρησιμοποιώ συγκεκριμένα το jQuery, αλλά και γενικότερες απαντήσεις είναι επίσης κατάλληλες).
Ακριβώς πριν από την ετικέτα κλεισίματος του σώματος, όπως αναφέρεται στο
http://developer.yahoo.com/performance/rules.html#js_bottom
Βάλτε τα σενάρια στο κάτω μέρος
Το πρόβλημα που προκαλούν τα σενάρια είναι ότι εμποδίζουν τις παράλληλες λήψεις. Η προδιαγραφή HTTP/1.1 προτείνει ότι οι φυλλομετρητές δεν πρέπει να κατεβάζουν παράλληλα περισσότερα από δύο στοιχεία ανά όνομα κεντρικού υπολογιστή. Εάν σερβίρετε τις εικόνες σας από πολλαπλά ονόματα κεντρικών υπολογιστών, μπορείτε να κάνετε περισσότερες από δύο λήψεις να πραγματοποιούνται παράλληλα. Ωστόσο, ενώ ένα σενάριο κατεβαίνει, το πρόγραμμα περιήγησης δεν θα ξεκινήσει άλλες λήψεις, ακόμη και σε διαφορετικά ονόματα κεντρικών υπολογιστών.
Αν χρησιμοποιείτε το JQuery, τότε τοποθετήστε το javascript όπου το βρίσκετε καλύτερο και χρησιμοποιήστε την $(document).ready()
για να διασφαλίσετε ότι τα πράγματα φορτώνονται σωστά πριν από την εκτέλεση οποιασδήποτε λειτουργίας.
Σε μια δευτερεύουσα σημείωση: Μου αρέσουν όλες οι ετικέτες σεναρίων μου στο τμήμα <head>
καθώς αυτό φαίνεται να είναι το πιο καθαρό μέρος.
Η συμβατική (και ευρέως αποδεκτή) απάντηση είναι "στο κάτω μέρος", επειδή τότε ολόκληρο το DOM θα έχει φορτωθεί πριν αρχίσει να εκτελείται οτιδήποτε.
Υπάρχουν διαφωνούντες, για διάφορους λόγους, ξεκινώντας από τη διαθέσιμη πρακτική να ξεκινάει η εκτέλεση σκόπιμα με ένα συμβάν onload της σελίδας.