Betapa salahnya menempatkan tag skrip setelah tag penutup body ( </body>
). ?
<html>
....
<body>
....
</body>
<script type="text/javascript" src="theJs.js"></script>
</html>
javascript
html
DanC
sumber
sumber
Jawaban:
Itu tidak akan memvalidasi di luar tag
<body>
atau<head>
. Itu juga tidak akan membuat banyak perbedaan - kecuali jika Anda melakukan manipulasi DOM yang dapat merusak IE sebelum elemen tubuh dimuat penuh - untuk meletakkannya tepat sebelum penutupan</body>
.sumber
<script src="..." defer>
, yang berfungsi di semua browser utama (meskipun dengan bug yang berpotensi pecah di IE9 dan lebih rendah).Iya. Hanya komentar dan tag akhir untuk elemen html diizinkan setelah tag akhir untuk tubuh.
Browser mungkin melakukan pemulihan kesalahan, tetapi Anda tidak boleh bergantung pada itu.
sumber
Seperti yang Andy katakan, dokumen itu tidak valid, tetapi skrip tetap akan ditafsirkan. Lihat cuplikan dari WebKit misalnya:
sumber
IE tidak mengizinkan ini lagi (karena Versi 10, saya percaya) dan akan mengabaikan skrip tersebut. FF dan Chrome masih menoleransi mereka, tetapi ada kemungkinan bahwa suatu hari mereka akan menjatuhkan ini sebagai non-standar.
sumber
Secara prosedural masukkan "elemen script" setelah "elemen body" adalah "parse error" dengan proses yang direkomendasikan oleh W3C . Di "Konstruksi Pohon" buat kesalahan dan jalankan "tokenize lagi" untuk memproses konten itu. Jadi ini seperti langkah tambahan. Hanya dengan demikian dapat dijalankan "Eksekusi Skrip" - lihat proses skema .
Secara teknis oleh browser itu proses internal, bagaimana mereka menandai dan mengoptimalkannya.
Saya harap saya membantu seseorang.
sumber
Iya. Tetapi jika Anda menambahkan kode di luar itu kemungkinan besar tidak akan menjadi akhir dunia karena sebagian besar browser akan memperbaikinya, tetapi itu masih merupakan praktik yang buruk untuk masuk.
sumber
Google sebenarnya merekomendasikan ini sehubungan dengan 'Optimasi CSS'. Mereka merekomendasikan in-lining kritis di atas lipat gaya dan menunda sisanya (file css).
Contoh:
Lihat: https://developers.google.com/speed/docs/insights/OptimizeCSSDelivery
sumber
body
elemen. Artikel Google itu tidak menyarankan siapa pun untuk melakukan hal seperti itu.Browser modern akan mengambil tag skrip di dalam tubuh seperti:
Pada dasarnya, ini berarti bahwa skrip akan dimuat setelah halaman selesai, yang mungkin berguna dalam kasus-kasus tertentu (yaitu manipulasi DOM). Namun, saya sangat menyarankan Anda mengambil skrip yang sama dan meletakkannya di tag kepala dengan "menunda", karena akan memberikan efek yang sama.
sumber
script
tag memilikievent
atribut yang dapat didefinisikan untuk menentukan kapan mem-parsing skrip. Jadi, Anda harusevent="load" event="DOMContentLoaded"
menjalankan skrip setelah DOM dibuat atauevent="beforeunload"
dibeforeunload
acara jendela . Contoh<script src="scripts/main.js" event="DOMContentLoaded"></script>
,.