javascript - Rails turbolinks JS 文件 Bug

标签 javascript jquery ruby-on-rails turbolinks

我所有的 .js 文件都是这样的:

function function_name(){
.....
some code
.....
}
$(document).ready(function_name);
$(document).on('page:load', function_name);

我使用 setInterval(some_function, 7000) ,事件处理程序,如 $(document).on('click', '.blah-blah', function(){...}) .不幸的是,如果我通过 turbolinks(使用 turbolinks session )向服务器发出多个请求,这些东西会多次调用。实际上调用量等于服务器请求量。 例如,我有 <button id="button"></button>和 js 事件处理程序,处理程序执行的次数与我在 turbolinks session 中的请求一样多。太烦人了)

我希望您了解如何保持 turbolinks 开启并避免在 js 文件中进行多次调用。谢谢。

最佳答案

你有两个选择:

  1. 在执行设置间隔或添加处理程序等操作的代码中,首先检查间隔或处理程序是否已经存在,如果已经存在则不要添加另一个。

  2. 附加到 one of the other events from turbolinks"page:before-change""page:before-unload" 并删除其中的间隔或处理程序。

关于javascript - Rails turbolinks JS 文件 Bug,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28421321/

相关文章:

javascript - vue.js 更改值未在输入 v-model 中更新

javascript - 单击时变大的小图 block

javascript - 基于ViewBag显示Modal Error Message的PartialView

ruby-on-rails - Rails 显示来自belongs_to 的类别名称

ruby-on-rails - 购物车,可以使用 Devise 的 session 功能吗?

javascript - 如何在 jQuery 模板内进行 RegExp 替换?

javascript - fullpage.js 与 mobile.js 和 camera.js 的不兼容问题

ruby-on-rails - 如何在 Rails 6 中使用 cocoon gem

javascript - 隐藏显示 div Angular

jquery - 使用哪个版本的 jQuery/jQuery UI?