Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/474.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Turbolinks多次加载Javascript_Javascript_Jquery_Ruby On Rails_Ruby On Rails 4_Turbolinks - Fatal编程技术网

Turbolinks多次加载Javascript

Turbolinks多次加载Javascript,javascript,jquery,ruby-on-rails,ruby-on-rails-4,turbolinks,Javascript,Jquery,Ruby On Rails,Ruby On Rails 4,Turbolinks,我使用的是Turbolinks 2.5.3,我在主页底部有一个脚本标签 <script> $(document).ready(function() { alert('hello'); }); </script> 如果我访问主页,警报将显示一次。如果我按后退按钮,然后按浏览器上的前进按钮,主页将加载,现在会出现两个警报。如果我再次重复此过程,将显示三个警报 我的问题是: 当我明确告诉Turbolinks不要缓存页面时,为什么Turbolinks要缓存页面。

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

<script>
  $(document).ready(function() {
    alert('hello');
  });
</script>
如果我访问主页,警报将显示一次。如果我按后退按钮,然后按浏览器上的前进按钮,主页将加载,现在会出现两个警报。如果我再次重复此过程,将显示三个警报

我的问题是:


当我明确告诉Turbolinks不要缓存页面时,为什么Turbolinks要缓存页面。它是否与TurboLink转换文档就绪事件侦听器有关?如何修复此问题,使其每次只加载一次?

尝试类似的方法

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

$(文档).ready(函数(){
if(警报('hello')){
}
否则{
警惕(“你好”);
}
});

在加载时使用此选项

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

使用
turbolinks:load

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

$(document).on('turbolinks:load',function(){
警惕(“你好”);
});

很抱歉,这仍然会导致表单加载多次。不,相同的结果。警报加载两次。不幸的是,此代码中根本没有出现警报。这对于TurboLink 5是准确的,但对于2.5.3则不准确。这不是一个可行的解决方案,因为我的代码中实际上没有使用
警报(“hello”)
。为了简单起见,我添加了它。为什么在每个页面上都使用
pagesCached(0)
<script>
  $(document).on('turbolinks:load',function() {
    alert('hello');
  });
</script>