$(document).ready() dan CSS DOM Injection
Apabila melaksanakan skrip menggunakan $(document).ready(), ada mungkin kebimbangan sama ada semua nilai CSS telah disuntik ke dalam DOM pada masa itu. Berikut ialah analisis mendalam:
DOM-ready vs. CSS-ready
Pada masa lalu, $(document).ready() cuba memastikan semua Lembaran gaya CSS telah dimuatkan sebelum melaksanakan skrip. Walau bagaimanapun, bermula dengan keluaran 1.3, jQuery tidak lagi membuat jaminan sedemikian. Pengesyoran adalah untuk menyertakan semua fail CSS sebelum skrip pada halaman untuk mengelakkan isu sporadis dengan sifat elemen tidak ditakrifkan dengan betul.
Pembentukan CSS dan $(document).ready()
jQuery ready() tidak menunggu CSS untuk dipaparkan; oleh itu, anda mungkin masih melihat perubahan visual apabila ia bermula, walaupun CSS tidak dimuatkan sepenuhnya.
Mengapa JavaScript Melambatkan Apabila CSS Ditangguh
Tingkah laku yang tidak dijangka beberapa pembangun telah memerhatikan bahawa pelaksanaan JavaScript boleh ditangguhkan walaupun selepas fail CSS mula dimuatkan. Ini mungkin tidak logik kerana CSS dimuatkan secara tidak segerak dan tidak boleh menjejaskan pemuatan JavaScript. Walau bagaimanapun, ujian telah menunjukkan bahawa dalam beberapa kes, gabungan khusus JavaScript luaran dan pemuatan CSS boleh menyebabkan kelewatan sedemikian.
Penyelesaian: CSS sebelum JavaScript
Untuk mengelakkan potensi isu, amalan terbaik kekal untuk memasukkan fail CSS di atas semua kod JavaScript. Walaupun ia mungkin tidak selalu menghalang kelewatan JavaScript, ia mengelakkan masalah dengan sifat elemen yang tidak ditakrifkan dengan betul.
Pertimbangan Tambahan
Kesimpulan
Dengan mengikut cadangan untuk memasukkan CSS sebelum JavaScript, anda boleh meminimumkan risiko masalah yang berkaitan dengan suntikan CSS apabila menggunakan $(document).ready(). Jika anda mengalami kelewatan yang tidak dijangka, ujian menyeluruh dan pertimbangan yang teliti terhadap faktor di atas boleh membantu mengenal pasti punca asas.
Atas ialah kandungan terperinci Adakah $(document).ready() Menjamin Suntikan CSS ke dalam DOM?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!