Perlu diingat bahwa CSS memblokir perenderan. Dari segi kinerja, ini adalah masalah karena browser mengunduh CSS, berhenti mengecat halaman Show
Oleh karena itu, setiap CSS yang tidak penting untuk konten paro atas adalah kandidat yang baik untuk dimuat secara asinkron. Juga, perlu diingat bahwa 14kb-ish adalah ukuran permintaan HTTP bolak-balik tunggal, jadi akan sangat bagus untuk menjaga CSS kritis di bawah ukuran ini Bagaimana cara kerjanya?Nah, mengingat bahwa kita belum memiliki (belum) metode asli untuk memuat asinkron CSS, kita perlu menggunakan solusi di atas. Kami mengelabui browser bahwa jenis media tidak cocok dengan lingkungan saat ini, sehingga tidak akan memblokir perenderan. Setelah pemuatan selesai, kami menggunakan event onload javascript untuk memberi tahu browser agar benar-benar menggunakan CSS yang ditangguhkan Anda dapat membacanya lebih lanjut di artikel awal yang ditulis oleh Scott Jehl ini Mengapa saya dapat menggunakan atribut link preload untuk memuat async CSS?Ya, Anda bisa dan berhasil. Hanya saja tampaknya pendekatan "Namun yang lebih penting, preload mengambil file sangat awal, pada prioritas tertinggi, berpotensi menurunkan prioritas unduhan penting lainnya, dan itu mungkin prioritas lebih tinggi daripada yang sebenarnya Anda perlukan untuk CSS non-kritis. " Saya harap Anda menikmati artikel ini dan jika Anda ingin mendapatkan lebih banyak artikel tentang React dan pengembangan frontend, Anda selalu dapat mendaftar ke daftar email saya Salah satu hal paling berpengaruh yang dapat kami lakukan untuk meningkatkan performa dan ketahanan halaman adalah memuat CSS dengan cara yang tidak menunda perenderan halaman. Itu karena secara default, browser akan memuat CSS eksternal secara bersamaan—menghentikan semua perenderan halaman saat CSS diunduh dan diuraikan—keduanya berpotensi menimbulkan penundaan
Jangan hanya bangun dan lakukan ini ke semua stylesheet Anda, jika tidak, Anda akan mendapatkan "Flash of Unstyled Content" (FOUC) yang cukup buruk saat halaman dimuat. Anda perlu memasangkan teknik dengan cara mengirim CSS kritis. Lakukan itu, dan seperti yang dikatakan kalimat pembuka Scott, itu cukup berdampak Cerita sampingan yang menarik… di halaman Pen Editor kami di CodePen, kami mengalami masalah FOUC (peringatan, ada kilatan putih yang sangat cepat di video ini)
Apa yang membuatnya aneh adalah kita memuat CSS kita di Muat resource CSS non-kritis berprioritas rendah di latar belakang tanpa memengaruhi kecepatan halaman dengan teknik sederhana ini untuk pemuatan CSS asinkron Langsung Ke HasilApa itu Pemuatan Asinkron?Pemuatan asinkron atau asinkron mengacu pada pengunduhan dan penerapan sumber daya halaman di latar belakang, terlepas dari sumber daya lain dan tanpa memengaruhi proses pemuatan awal Konfigurasi ini ideal untuk CSS yang tidak berlaku untuk elemen konten paruh pertama atau paro atas dan dapat ditambahkan ke halaman nanti dalam proses pemuatan. Juga disebut CSS non-kritis, memuat file CSS prioritas rendah secara asinkron adalah teknik umum untuk menghilangkan CSS pemblokiran render dan meningkatkan kecepatan situs web Syarat & Teknik Istilah lazy loading, on-demand, deferred, dan asynchronous semuanya terkait dengan berbagai metode untuk meminimalkan bobot halaman pemuatan awal dan menghilangkan sumber daya pemblokiran render. Meskipun sering digunakan secara bergantian, ada beberapa perbedaan utama
Mengonfigurasi ulang CSS Untuk KecepatanSumber daya CSS eksternal disertakan pada halaman dengan referensi 0 ke fileHTML _Referensi pemblokiran render konvensional seperti ini ke file CSS yang sangat kecil (<10 KB diperkecil & dikompresi) sesuai untuk gaya penting yang diterapkan pada bagian halaman yang awalnya terlihat atau paruh atas sehingga pengguna tidak melihatnya . Namun untuk CSS non-kritis yang hanya berlaku untuk konten paro bawah, efek pemblokiran render berdampak negatif pada kecepatan halaman Optimalkan proses pemuatan dengan pendekatan progresif Masukkan Asynchronous CSSAlih-alih menghentikan proses pemuatan dengan referensi CSS pemblokiran render konvensional, CSS asinkron memuat di latar belakang. HTML dapat terus dianalisis oleh browser, sumber daya lain yang lebih penting dapat terus dimuat dan laman dapat dirender dan muncul di layar secepat mungkin CSS asinkron menggunakan kombinasi sederhana dari atribut 1 dan sedikit JavaScript untuk menarik switcheroo lama setelah file dimuatHTML
(Ini adalah fungsi inti dari CSS asinkron -. ) MenghancurkannyaTeknik ini mendapat manfaat dari fakta bahwa browser masih mengunduh referensi file dengan kondisi media yang tidak cocok, tetapi melakukannya di latar belakang dengan prioritas rendah tanpa memblokir perenderan halaman
( 8 menghindari panggilan 4 lagi di beberapa browser. )HTML yang sah Terkadang teknik atribut _1 terlihat dengan nilai seperti "tidak ada", yang bukan merupakan HTML yang valid. (Dan siapa yang butuh itu?) Nilai seperti 1 atau bahkan 2 atau serupa tidak akan cocok dengan kondisi layar pengguna apa pun sambil tetap memiliki kode yang validPenggantian No-JavaScriptKarena bergantung pada JavaScript, referensi 0 konvensional yang dibungkus dengan 4 adalah fallback yang mudahHTML
Tingkatkan Prioritas PemuatanUntuk halaman yang dioptimalkan dengan baik tanpa banyak sumber daya lain yang bersaing, prioritas CSS yang dimuat secara asinkron dapat ditingkatkan secara opsional dengan menambahkan petunjuk sumber daya 5
Perhatikan atribut _6 yang ditambahkan. Pelajari semua tentang petunjuk sumber daya dan atribut mana yang diperlukan dan mana yang opsionalTidak Begitu Cepat Mengapa tidak menyederhanakan dan menggabungkan referensi async _0 dengan 5?Sayangnya dukungan browser untuk nilai _9 tidak universal, jadi menggabungkan keduanya akan memerlukan fallback JavaScript. Menggunakan 0s terpisah memiliki efek yang sama dan menghindari kebutuhan JavaScript tambahanKondisi MediaBersamaan dengan memisahkan CSS kritis dari non-kritis, strategi lain yang bermanfaat adalah mengatur file CSS berdasarkan kondisi media Kueri media dapat secara selektif memprioritaskan sumber daya penting berdasarkan kondisi seperti ukuran layar. Semua file akan diunduh, tetapi dengan prioritas yang sesuai, dan hanya file dengan kondisi media yang cocok yang akan memblokir rendering HTML
Tanpa JavaScriptTeknik atribut 1 adalah pilihan terbaik untuk sebagian besar kasus, tetapi bagaimana jika Anda perlu mendapatkan efek serupa tanpa menggunakan JavaScript?Menempatkan referensi CSS yang tidak penting di akhir halaman, sebelum tag 2 penutup memiliki efek yang serupaHTML
Bergantung pada jumlah dan kerumitan konten halaman dan sumber daya lainnya, kelemahan dari metode ini adalah file mungkin tidak mulai dimuat segera setelah file dirujuk di bagian 3, meningkatkan potensi flash konten tanpa gayaBersamaMenyatukan semua elemen ini menghasilkan metode yang sederhana dan efektif untuk pemuatan CSS asinkron dan kecepatan halaman yang lebih cepat HTML
Async CSS Untuk Google FontSeiring dengan peningkatan efisiensi pemuatan sumber daya CSS umum, pemuatan asinkron adalah teknik yang bagus untuk menghilangkan efek pemblokiran render dari Google Fonts Bagaimana Anda memuat file CSS dan JS secara dinamis?Muat file CSS dan JS secara dinamis. Kami membuat elemen skrip untuk file JS dan elemen tautan untuk file CSS sesuai kebutuhan menggunakan DOM, menetapkan atribut yang sesuai untuknya, lalu menambahkan elemen ke lokasi yang diinginkan dalam pohon dokumen menggunakan elemen. menambahkan() metode
Bisakah browser mengunduh file CSS dan JS secara paralel?Dampak Rendering CSS dan JavaScript
. the browser can download and process many of them in parallel, without worrying about how they'll interact with each other or with the rest of the page.
Bagaimana cara memuat CSS dan JavaScript?JavaScript juga dapat digunakan untuk memuat file CSS dalam dokumen HTML. . Gunakan dokumen. metode getElementsByTagName() untuk mendapatkan elemen kepala HTML Buat elemen tautan baru menggunakan metode createElement('link'). Inisialisasi atribut elemen tautan Tambahkan elemen tautan ke kepala Mana yang pertama memuat CSS atau JavaScript?Dalam hal mengurutkan CSS dan JavaScript, Anda ingin CSS Anda didahulukan . Alasannya adalah utas rendering memiliki semua informasi gaya yang diperlukan untuk merender halaman. Jika menyertakan JavaScript yang didahulukan, mesin JavaScript harus mengurai semuanya sebelum melanjutkan ke kumpulan sumber daya berikutnya. |