Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 23.06.2014, 15:45
Интересующийся
Отправить личное сообщение для oxxy Посмотреть профиль Найти все сообщения от oxxy
 
Регистрация: 05.12.2013
Сообщений: 20

запуск setTimeout с разным временным интрвалом
Добрый день!

Для запуска функции через разный промежуток времени решил воспользоваться setTimeout,

с setInterval еще не понял как делать.

Вот код

var timearr=new Array(1000,200,500,150,3000,1500,1700,2000);  /*массив со временем*/

var getelemcount=timearr.length;  /*длина массива*/

var i=0; 


var timer=setTimeout(function(){  /*вызов таймера*/
	

i++;  /*увеличение на 1*/

var getrez=timearr[Math.floor(Math.random()*getelemcount)]; /*присваиваем переменной рандомное значение из массива со временем*/

if (i <getelemcount)   /*если i меньше кол-ва элементов массива*/
    {
	
      setTimeout(arguments.callee, getrez);  /*продолжаем вызывать setTomeout ,но уже со временем указанным случайным образом*/
	  		alert(getrez);  /*просто тестовый вывод  результат*/
        }else{  
			clearTimeout(timer); /*останаваливаем таймер*/
			 i=0;
			 setTimeout(arguments.callee, 1000);
			}
	
	},1000);

Код работает.

Вопрос, правильно ли я сделал остановку таймера.Ведь непрерывное срабатывание таймера несет нагрузку.
clearTimeout(timer); /*отанаваливаем таймер*/
			 i=0;
			 setTimeout(arguments.callee, 1000);

То есть сначало останавливаем таймер, а затем заново вызываем таймер..(типо обнуляем результат)

Верный подход или возможно что то не так делаю?
Ответить с цитированием
Ответ



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

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