Adakah Nilai CSS Tersedia Apabila $(document).ready() Melaksanakan?
Soalan:
Mengapa a skrip执行于$(dokumen).sedia pada halaman dengan penjajaran kandungan dinamik kadangkala ketinggalan atau tidak berfungsi?
Jawapan:
Menurut nota keluaran dan dokumentasi jQuery, $(document).ready() mungkin tidak menunggu nilai CSS disuntik sepenuhnya ke dalam DOM. Oleh itu, adalah disyorkan untuk memasukkan semua fail CSS dalam
sebelum sebarang rujukan skrip.
Penjelasan:
-
Pemuatan CSS Asynchronous: Fail CSS dimuatkan secara tidak segerak, bermakna JavaScript boleh dilaksanakan sebelum CSS pemaparan selesai.
-
Kebergantungan CSS pada JS Pengiraan: Dalam sesetengah kes, pengiraan JavaScript bergantung pada nilai CSS untuk menentukan dimensi dan kedudukan elemen, yang boleh menyebabkan ketidaktepatan jika nilai CSS belum tersedia.
-
Khusus Penyemak Imbas Gelagat: Gelagat yang diperhatikan dalam soalan yang ditanya mungkin berkaitan dengan gelagat penyemak imbas tertentu, seperti sebagai:
-
Internet Explorer: Kadangkala menghentikan pelaksanaan JS sehingga CSS luaran dimuatkan, terutamanya jika CSS diletakkan di atas JS dalam halaman.
-
Pelayar lain: Mungkin tidak selalu menghentikan pelaksanaan JS walaupun CSS tidak sepenuhnya dimuatkan.
Resolusi:
Untuk memastikan nilai CSS tersedia apabila $(document).ready() dilaksanakan:
- Sentiasa sertakan fail CSS sebelum rujukan JavaScript dalam daripada dokumen HTML.
- Jika boleh, pertimbangkan untuk mengalihkan skrip ke bahagian bawah halaman, selepas semua CSS dan kandungan dimuatkan.
Nota Tambahan:
- Dalam kebanyakan kes, meletakkan CSS di atas JS akan menyelesaikan isu prestasi yang berkaitan dengan pergantungan CSS pada JS pengiraan.
- Walau bagaimanapun, gelagat khusus penyemak imbas kompleks yang berkaitan dengan pemuatan sumber tak segerak dan pelaksanaan skrip mungkin masih berlaku.
Atas ialah kandungan terperinci Adakah $(document).ready() Sentiasa Mempunyai Akses kepada Nilai CSS Akhir?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!