5

私はTurbolinks 2.5.3を使用しています。ホームページの下部にスクリプトタグがあります。サイト上のすべてのページについてはTurbolinksがJavascriptを複数回ロードする

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

、私は以下のJSを実行します。私はホームページを訪問した場合

Turbolinks.pagesCached(0); 

、アラートが一度表示されます。戻るボタンを押してブラウザの「進む」ボタンを押すとホームページが読み込まれ、2つの警告が表示されます。このプロセスをもう一度繰り返すと、3つのアラートが表示されます。

は、ここに私の質問です:私は、明示的ではないにそれを言ったとき

はなぜTurbolinksは、ページをキャッシュされます。ドキュメントレディイベントリスナーを変換するターボリンクと関係がありますか?これを修正して毎回一度だけロードする方法は?

+0

なぜあなたが使用している 'pagesCached(0) 'onすべてのページ? –

答えて

1

この

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

'alert( 'hello')'が実際に自分のコードで使われていないので、これは実現可能な解決策ではありません。私は簡単にするためにそれを追加しました。 – jason328

1

使用のようなものを試してみてください。このため、負荷の代わりに

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

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

+0

申し訳ありませんが、これによりフォームが複数回読み込まれます。 – jason328

+0

'ready '部分を削除するとどうなりますか? –

+0

いいえ、同じ結果です。アラートが2回ロードされます。 – jason328

1

使用turbolinks:load

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

残念ながら、このコードではアラートはまったく表示されません。 – jason328

+0

これはターボリンク5では正確ですが、2.5.3では正確ではありません –

関連する問題