melalui @jpdevries di komentar di 1039
Berbicara tentang document.write () fallback (yang menurut saya aturannya) bagaimana dengan ini?
Chrome tidak akan lagi memuat skrip yang dimasukkan melalui document.write () saat koneksi internet lambat
https://developers.google.com/web/updates/2016/08/removing-document-writeApakah cara menyikapi hal ini sudah dibahas?
Belum, tapi terima kasih telah memberitahukan hal ini kepada kami.
Berikut ini potongan-potongan menarik dari dokumen yang ditautkan
Dengan mengingat data ini, tim Chrome baru-baru ini mengumumkan niat untuk campur tangan atas nama semua pengguna saat kami mendeteksi pola yang diketahui buruk ini dengan mengubah cara penanganan document.write () di Chrome (Lihat Status Chrome). Secara khusus, Chrome tidak akan menjalankan file
Terima kasih telah membuka masalah @roblarsen. Saya bertanya-tanya apakah mungkin menambahkan defer
ke semua skrip yang disertakan akan menyelesaikan masalah ini?
Skrip dengan atribut 'async' atau 'defer' akan tetap dijalankan.
Sesuatu seperti
<script defer src="https://code.jquery.com/jquery-1.12.4.min.js"></script>
<script defer>window.jQuery || document.write('<script defer src="js/vendor/jquery-1.12.4.min.js"><\/script>')</script>
<script defer src="js/plugins.js"></script>
<script defer src="js/main.js"></script>
Itu
<script defer>window.jQuery || document.write('<script defer src="js/vendor/jquery-1.12.4.min.js"><\/script>')</script>
seperti permulaan defer
. Tampaknya berfungsi, tetapi tidak yakin apakah itu benar.
Hm ... atau mungkin skrip jquery bisa jadi async dan plugin dan skrip utama ditunda. Perlu memastikan bahwa memuat setelah jQuery tentu saja.
@jpdevries Saya pikir menulis ulang skrip include untuk menggunakan antarmuka DOM modern (parentNode.insertBefore) seperti yang digunakan Google Analytics akan menjadi sesuatu yang perlu dilihat juga.
Diskusi terkait tentang ini yang dapat membantu mendorong keputusan:
@FagnerMartinsBrack Terima kasih atas
Strategi penundaan adalah opsi terbaik menurut saya. Saya tidak suka async sama sekali, untuk skrip yang harus siap secepatnya seperti jQuery. Saya telah menyarankan implementasi jangka panjang di utas WICG / intervensi ...
@jpdevries Dua hal dengan kode 'defer' Anda:
<script>
s sudah tidak digunakan lagi oleh WHATWG. Alasan buruk yang tidak mencukupi yang diberikan adalah bahwa tidak ada yang menggunakannya ... Kisah sebenarnya yang timpang, tetapi sayangnya terjadi .... Jadi defer
awal tidak akan berhasil. :(defer
terutama menunggu penggunaan IE10 mati.@hexalys 😭 Saya telah menggunakan defer inception untuk hal-hal seperti CDN gaya h5bp dengan fallback lokal atau melakukan deteksi fitur sebelum menyertakan sesuatu seperti polyfill. Itu menyedihkan!
Penutupan! Kami aman!
@roblarsen oh itu bagus! Apakah Chrome membatalkan keputusan mereka? Saya ingin tahu mengapa kami aman karena saya benar-benar ❤️ pola ini
@jpevries Ini hanya dipicu ketika permintaan lintas sumber jadi kami baik-baik saja. Bagaimanapun, ini adalah fallback lokal.