2016-09-06 114 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 –