Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 24.02.2016, 22:47
Интересующийся
Отправить личное сообщение для Nesquik Посмотреть профиль Найти все сообщения от Nesquik
 
Регистрация: 04.01.2014
Сообщений: 29

too much recursion
function phone_anim() {
		$('.phone').animate({
			opacity: 0.3
		}, 600).animate({
			opacity: 1
		}, 600);
		
		phone_anim();
	}
	
	phone_anim();


я думал прокатит(
Ответить с цитированием
  #2 (permalink)  
Старый 24.02.2016, 23:15
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

Nesquik,
строка 8 должна быть в строке 6
Ответить с цитированием
  #3 (permalink)  
Старый 24.02.2016, 23:29
Интересующийся
Отправить личное сообщение для Nesquik Посмотреть профиль Найти все сообщения от Nesquik
 
Регистрация: 04.01.2014
Сообщений: 29

рони, боюсь спросить это как?
Ответить с цитированием
  #4 (permalink)  
Старый 24.02.2016, 23:32
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

Nesquik,
(function phone_anim() {
		$('.phone').animate({
			opacity: 0.3
		}, 600).animate({
			opacity: 1
		}, 600, phone_anim);
	}())
Ответить с цитированием
  #5 (permalink)  
Старый 24.02.2016, 23:38
Интересующийся
Отправить личное сообщение для Nesquik Посмотреть профиль Найти все сообщения от Nesquik
 
Регистрация: 04.01.2014
Сообщений: 29

Вопрос еще любопытный. В моем предыдущем опыте использования асинхронных функций таймаута и интервала приводило к тому что условно мигание постепенно убыстрялось. Ведь, как я понимаю, это связано с механизмом работы данных функций в js ? и, если к примеру таймаут = 0 реальное срабатывание = 200 мс.
Ответить с цитированием
  #6 (permalink)  
Старый 24.02.2016, 23:46
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

Nesquik,
это связано только с тем что вы увеличивали количество запущенных функций, устройство таймаута или интервала тут не причём, только в случае интервала создать лавину функций проще и беспощаднее.
Ответить с цитированием
  #7 (permalink)  
Старый 24.02.2016, 23:56
Интересующийся
Отправить личное сообщение для Nesquik Посмотреть профиль Найти все сообщения от Nesquik
 
Регистрация: 04.01.2014
Сообщений: 29

рони, т.е. я правильно понимаю что через рекурсию подобные задачки решать лучше?
Ответить с цитированием
  #8 (permalink)  
Старый 25.02.2016, 00:05
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

Сообщение от Nesquik
рекурсию подобные задачки решать лучше?
лучше не умножать количество процессов, неважно за счёт чего это достигается, правильным запуском таймера или Callback
Ответить с цитированием
  #9 (permalink)  
Старый 25.02.2016, 00:08
Интересующийся
Отправить личное сообщение для Nesquik Посмотреть профиль Найти все сообщения от Nesquik
 
Регистрация: 04.01.2014
Сообщений: 29

да, но как тогда решить такие задачи?
Ответить с цитированием
  #10 (permalink)  
Старый 25.02.2016, 00:29
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

Сообщение от Nesquik
да, но как тогда решить такие задачи?
запускать следующий цикл, только когда отработал предыдущий, либо отключать работу предыдущего цикла при запуске нового.
первый вариант пост 4
второй ниже
(function phone_anim() {
		$('.phone').stop(true,true).animate({
			opacity: 0.3
		}, 600).animate({
			opacity: 1
		}, 600 );
     window.setTimeout(phone_anim, 1200)
	}())

даже если 1200 будет меньше 600 + 600 , stop прервёт предыдущие анимации и наложения анимаций не произойдёт.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка too much recursion zsaz jQuery 6 30.07.2014 08:26
too much recursion рекурсия ajax запросов timach jQuery 0 17.01.2013 12:05