Adakah `$(document).ready()` Sebenarnya Menjamin CSS Dimuat Sepenuhnya dan Digunakan?

Susan Sarandon
Lepaskan: 2024-11-24 05:26:14
asal
777 orang telah melayarinya

Does `$(document).ready()` Actually Guarantee CSS is Fully Loaded and Applied?

Adakah $(document).ready() Menjamin CSS Sedia?

Masalah:

Skrip yang dilaksanakan menggunakan $ (dokumen).ready() menyebabkan isu dengan penjajaran menegak elemen blok. Ia secara misteri sama ada ketinggalan atau menyeleweng elemen.

Soalan:

Adakah mungkin bahawa melaksanakan skrip pada DOM-ready tidak memberikan semua nilai CSS yang betul yang disuntik ke dalam yang DOM?

Jawapan:

Menurut nota keluaran jQuery 1.3:

"Kaedah ready() tidak lagi cuba membuat sebarang jaminan tentang menunggu semua helaian gaya dimuatkan sebaliknya, semua fail CSS hendaklah disertakan sebelum skrip pada halaman."

Ini bermakna adalah penting untuk memasukkan semua fail CSS dalam bahagian menggunakan elemen sebelum memuatkan sebarang skrip. Kegagalan berbuat demikian boleh membawa kepada tingkah laku yang tidak dapat diramalkan, terutamanya dalam penyemak imbas berasaskan WebKit seperti Safari.

Tanpa diduga, meletakkan CSS di atas skrip mungkin tidak menyelesaikan isu sepenuhnya. Muat turun CSS tidak segerak, membenarkan pemuatan JS bermula dan selesai walaupun semasa CSS sedang dimuat turun.

Percubaan menggunakan skrip cuzillion.com Steve Souders mendedahkan bahawa pelaksanaan JS kadangkala ditangguhkan sehingga CSS dimuatkan, walaupun bukti air terjun menunjukkan JS selesai sebelum muat turun CSS selesai.

Walau bagaimanapun, ujian lanjut menunjukkan bahawa peraturan menghentikan JS sehingga CSS yang ditakrifkan lebih awal adalah tidak universal. Nampaknya terdapat interaksi antara jujukan pemuatan JS luaran dan CSS.

Ringkasnya, untuk mengelakkan ketidakkonsistenan dan memastikan operasi skrip anda yang boleh dipercayai, sebaiknya masukkan semua fail CSS sebelum sebarang skrip pada halaman, seperti yang disyorkan dalam dokumentasi jQuery.

Atas ialah kandungan terperinci Adakah `$(document).ready()` Sebenarnya Menjamin CSS Dimuat Sepenuhnya dan Digunakan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan