В моем приложении Rails 5.2.2
я использую Turbolinks .
Я обнаружил, что когда я покидаю страницу, запущенные функции продолжаются.
Я организовал свои функции ниже оператора return
, который проверяет класс тела. В моем примере ниже, если класс тела не foobar
, указанные ниже функции не запускаются.
// assets/javascripts/pages/foobar.js
var goLoop;
$(document).on("turbolinks:load", function() {
if (!$("body").hasClass("foobar")) {
return;
}
return goLoop();
});
goLoop = function() {
return setTimeout((function() {
console.log("Hello");
return goLoop();
}), 1000);
};
- При первом посещении страницы запускается функция
goLoop
. - Когда я перехожу по ссылке со страницы, функция запускается. Если бы я не использовал Turbolinks, этого бы не произошло.
- Если я перейду по другой ссылке на страницу, функция снова сработает, поэтому теперь она запускается дважды.
Как я могу избежать этого, не отключая Turbolinks?