Rails turbolinks JS 文件错误
Rails turbolinks JS files Bug
我所有的 .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 会话)向服务器发出多个请求,这些东西会多次调用。实际上调用量等于服务器请求量。
例如,我有 <button id="button"></button>
和 js 事件处理程序,处理程序执行的次数与我拥有的 turbolinks 会话中的请求一样多。太烦人了)
我希望您了解如何保持 turbolinks 开启并避免在 js 文件中进行多次调用。谢谢。
您有两个选择:
在执行设置间隔或添加处理程序等操作的代码中,首先检查间隔或处理程序是否已经存在,如果已经存在则不要添加另一个。
附加到 one of the other events from turbolinks,如 "page:before-change"
或 "page:before-unload"
,并删除其中的间隔或处理程序。
我所有的 .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 会话)向服务器发出多个请求,这些东西会多次调用。实际上调用量等于服务器请求量。
例如,我有 <button id="button"></button>
和 js 事件处理程序,处理程序执行的次数与我拥有的 turbolinks 会话中的请求一样多。太烦人了)
我希望您了解如何保持 turbolinks 开启并避免在 js 文件中进行多次调用。谢谢。
您有两个选择:
在执行设置间隔或添加处理程序等操作的代码中,首先检查间隔或处理程序是否已经存在,如果已经存在则不要添加另一个。
附加到 one of the other events from turbolinks,如
"page:before-change"
或"page:before-unload"
,并删除其中的间隔或处理程序。