Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как очищать все возможные интервалы созданные setInterval (https://javascript.ru/forum/misc/78218-kak-ochishhat-vse-vozmozhnye-intervaly-sozdannye-setinterval.html)

maiskiykot 12.08.2019 22:45

Да все вроде на виду. Я даже находил где-то решение, но случайно стер все свои файлы при переустановке винды. Просто в JS не силен и бывает, что сам не могу допереть.

Aetae 13.08.2019 01:17

Убрать все - так:
for(var i = setInterval(''); i >= 0; i--)
  clearInterval(i);

Но это заметание мусора под ковёр. Если у вас что-то не работает или где-то назначаются лишние интервалы - надо открывать отладчик и дебажить.

ksa 13.08.2019 08:20

Цитата:

Сообщение от maiskiykot
Вот весь код

У меня в Опере все работает.
<!DOCTYPE html>
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=windows-1251' />
<!--
<script src='https://code.jquery.com/jquery-latest.js'></script>
<script src="https://code.angularjs.org/1.3.9/angular.min.js"></script>
<script src="https://code.angularjs.org/1.3.9/angular-route.js"></script>
-->
<style type='text/css'>
</style>
<script type='text/javascript'>
var isOldTitle = true; 
var oldTitle = "Old"; 
var newTitle = "New"; 
var interval = null;
interval = setInterval(changeTitle, 1000); 
window.onfocus = function() { 
	//alert('Ok');
	clearInterval(interval);
	document.title = oldTitle;
};
function changeTitle() { 
	document.title = isOldTitle ? oldTitle : newTitle; 
	isOldTitle = !isOldTitle;                        
};
</script>
</head>
<body>
</body>
</html>

Весь вопрос только в window.onfocus... Это событие кагбэ капризное. :D
https://learn.javascript.ru/window-focus
Может ты ждешь его, а оно не наступает. :-?
В моем примере это можно проверить раскоментировав всего одну строку с алертом. ;)

maiskiykot 08.08.2025 11:20

Повторно требуется помощь по этому скрипту. Периодически все-таки наслаиваются интервалы друг на друга и закладка начинает моргать со страшной скоростью. Но не это главное - никак не получается остановить моргание. Я и на боди кликаю и везде. Уже несколько триггеров сделал для отключения - только если сначала перейти на закладку а потом щелкнуть боди - тогда моргание прекращается. Хотелось бы, чтобы в любое место ткнул и отрубил. Ну и накопление интервалов тоже остается загадкой.

ksa 08.08.2025 14:46

Цитата:

Сообщение от maiskiykot
Ну и накопление интервалов тоже остается загадкой

Тут как раз никакой загадки нет... :)
Просто setInterval() в твоем коде запускается большее количество раз, нежели clearInterval().
Либо количество может совпадать... А вот последовательность нет
+1
-1
+2
-2

А типа такого
+1
+2
-2
-2

Вот первый интервал не убился...

Как убить гарантировано все интервалы, тебе показал камрад Aetae выше...
https://javascript.ru/forum/misc/782...tml#post511578


Часовой пояс GMT +3, время: 07:50.