Saya mengalami masalah dengan peristiwa pemuatan rekomendasi turbolink default saat ini:
document.addEventListener('turbolinks:load', function() {
…
});
Apa yang terjadi adalah ini tidak aktif di Safari saat halaman dimuat. Oleh karena itu saya menambahkan Turbolinks.dispatch("turbolinks:load");
ke application.js
.
Tampaknya berfungsi dengan baik. Namun di Chrome, ini diaktifkan secara otomatis, sehingga yang akhirnya terjadi adalah peristiwa turbolinks:load
yang terjadi dua kali.
Perbaikan pertama saya adalah mengaktifkan turbolinks:load
hanya di browser non-Chrome.
Namun entah bagaimana, bahkan di Chrome, beberapa tampilan tidak memicu turbolinks:load
secara otomatis. Jadi saya akhirnya harus mengaktifkannya pada tampilan tertentu juga.
Solusi terakhir yang saya temukan adalah menggunakan:
$(document).on('ready turbolinks:load', function() {
…
});
Ini sepertinya memperbaiki semua masalah karena aktif saat halaman pertama dimuat atau dimuat ulang dan saat saya mengeklik tautan. Itu juga aktif di Chrome dan Safari.
Apakah ada cara yang lebih baik untuk menangani hal ini?
Dokumen mengatakan bahwa versi pertama benar, tetapi tampaknya tidak demikian.
Apakah saya melewatkan sesuatu?
(catatan: menggunakan jQuery bukanlah kerugian bagi saya dan saya tahu saya bisa menerapkannya dengan beberapa document.addEventListener
)
async
di<script>
? - person Dom Christie   schedule 02.05.2018