2016-09-06 23 views
5

Turbolinks 2.5.3 kullanıyorum ve ana sayfanın alt kısmında bir komut dosyası etiketim var. Ben ana sayfasını ziyaret edersenizTurbolinks birden çok kez Javascript yükler

Turbolinks.pagesCached(0); 

, uyarı bir kez görünür: sitede her sayfa için

<script> 
    $(document).ready(function() { 
    alert('hello'); 
    }); 
</script> 

, aşağıdaki JS çalıştırın. Geri düğmesine basarsam tarayıcımda ileriye doğru tuşuyla ana sayfa yüklenecek ve şimdi iki uyarı görünecektir. Bu işlemi tekrar edersem, üç uyarı görünecektir. Ben açıkça değil söyledim zaman

Neden Turbolinks sayfasını önbelleğe:

İşte sorum. Belge hazır olay dinleyicisini dönüştüren Turbolinks ile ilgisi var mı? Bunu nasıl düzeltirim ki her seferinde sadece bir kere yükler?

+0

Neden kullandığınız 'pagesCached (0) üzerinde her sayfa –

cevap

1

bu

<script> 
    $(document).ready(function() { 
    if (alert('hello')) { 
    } 
    else { 
    alert('hello'); 
    } 
    }); 
</script> 
+0

Bu, 'uyarısı (' merhaba ') 'aslında benim kodumda kullanılmadığı için uygun bir çözüm değildir. Bunu sadelik için ekledim. – jason328

1

Kullanım gibi bir şey deneyin bunun için yük yerine

$(document).on('ready page:load', function() { 

https://github.com/turbolinks/turbolinks-classic#events

+0

Üzgünüm, bu hala formun bir kereden fazla yüklenmesine neden oluyor. – jason328

+0

"Hazır" parçayı kaldırırsanız ne olur? –

+0

Hayır, aynı sonuç. Uyarı iki kez yüklenir. – jason328

1

kullanım turbolinks:load

<script> 
    $(document).on('turbolinks:load',function() { 
    alert('hello'); 
    }); 
</script> 
+0

Maalesef, bu kod ile uyarı hiç görüntülenmiyor. – jason328

+0

Bu turbolinks 5 için doğru, ancak 2.5.3 için değil –

İlgili konular