Если это SPA, убедитесь, что вы очищаете интервал, чтобы предотвратить его продолжение (и предотвратить утечку памяти)
clearInterval(shift)
перед использованием .
Я работаю на личном веб-сайте, и я пытаюсь сделать небольшой скрипт для изменения определенной части html каждые несколько секунд (три секунды на данный момент).
Он переключает текст внизу:
К этому:
EDIT: вся страница html.erb выглядит так:
<br />
<br />
<br />
<p>I make <strong id="noun"><%= @word %></strong>.</p>
<script>
var words = ["programs", "video games", "software", "music", "board games", "websites"];
var shift = setInterval(function(){
var word = words[Math.floor(Math.random()*words.length)];
$("#noun").text(word);
}, 3000);
window.onbeforeunload = function() {
clearInterval(shift);
};
</script>
Он работает отлично в первый раз, но если я перейду к одной из ссылок на навигационной панели (например, «Возобновить») и вернуться домой, он действует почти так же, как у него есть два интервала, и будет переключаться на два раза чаще. Это стеки, и я могу заставить его переключать слова в 5 или 6 раз быстрее, чем нужно. Однако при обновлении он возвращается к нормальному состоянию.
В чем проблема и как я могу это исправить?
Благодаря!
javascript,ruby-on-rails,setinterval,