Html5-boilerplate: jQuery local fallback: Chrome tidak akan lagi memuat skrip melalui document.write melalui koneksi lambat

Dibuat pada 8 Sep 2016  ·  9Komentar  ·  Sumber: h5bp/html5-boilerplate

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-write

Apakah 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

help wanted javascript

Semua 9 komentar

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:

  1. Penangguhan inline <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. :(
  2. Perintah eksekusi 'defer' telah bermasalah di IE 8-9. Dan ada masalah dengan pengaktifan peristiwa 'interaktif' yang terlalu dini di IE 9-10 yang dapat memengaruhi eksekusi skrip 'tunda'. Nanti bisa dielakkan; Namun itu melibatkan peretasan dan skrip inline bawah untuk memicu 'interaktif' dengan benar ... Jadi kondisi untuk boilerplate publik yang menggunakan 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.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat