2016-09-06 59 views
5

我使用Turbolinks 2.5.3,並且在主頁底部有一個腳本標記。Turbolinks多次加載Javascript

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

對站點上的每一頁,我運行下面的JS:

Turbolinks.pagesCached(0); 

如果我訪問主頁,警報出現一次。如果我按下後退按鈕,然後在我的瀏覽器上轉發按鈕,主頁將加載,現在出現兩個警報。如果我再次重複此過程,則會顯示三條警報。

我的問題是:

爲什麼Turbolinks緩存的頁面時,我明確告訴它不要。它是否與Turbolinks轉換文檔就緒事件偵聽器有關?我如何解決這個問題,所以每次只加載一次?

+0

爲什麼你使用'pagesCached(0)開每一頁? –

回答

1

嘗試是這樣的

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

這不是一個可行的解決方案,因爲'alert('hello')'實際上並未在我的代碼中使用。爲了簡單起見,我添加了它。 – jason328

1

使用turbolinks:load

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

不幸的是,此代碼完全不顯示警報。 – jason328

+0

這對於turbolinks 5是準確的,但不適用於2.5.3 –