Turbolinks多次加载Javascript

时间:2016-09-06 14:50:07

标签: javascript jquery ruby-on-rails ruby-on-rails-4 turbolinks

我使用的是Turbolinks 2.5.3,主页底部有一个脚本标签。

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

对于网站上的每个页面,我运行以下JS:

Turbolinks.pagesCached(0);

如果我访问主页,则会出现一次警报。如果我按下后退按钮然后在我的浏览器上转发按钮,主页将加载,现在出现两个警报。如果我再次重复此过程,将出现三个警报。

这是我的问题:

为什么Turbolinks在我明确告知不要时缓存页面。是否与Turbolinks转换文档就绪事件监听器有关?我如何解决这个问题,每次只加载一次?

3 个答案:

答案 0 :(得分:1)

尝试这样的事情

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

答案 1 :(得分:1)

将此用于加载

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

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

答案 2 :(得分:1)

使用turbolinks:load

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