Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 26.12.2011, 19:10
Профессор
Отправить личное сообщение для Vampir3 Посмотреть профиль Найти все сообщения от Vampir3
 
Регистрация: 06.12.2011
Сообщений: 172

Рандомное время в setInterval
есть функция:

function test(){

alert('random alert');

}

нужно чтоб функция выполнялась в разное время (от 1 до 10 секунд)

setInterval('test()' //тут рандомное время);

можно создать переменную с Math.random() и вставить переменную вместо времени?
Ответить с цитированием
  #2 (permalink)  
Старый 26.12.2011, 19:24
Профессор
Посмотреть профиль Найти все сообщения от Livaanderiamarum
 
Регистрация: 25.12.2011
Сообщений: 786

//рандом от min до max
function rand(min, max){
return (max-min)*Math.random()+min
}

// команда return означает то, что функция будет подставлять НА СВОЕ МЕСТО после того как выполнится)))
// в данном случае подставляется то, что посчитает выражение (max-min)*Math.random()+min, а оно подсчитает случайное число между числами min и max включая)

//тест()
function test(){
alert('ня!')
}

//запускаем тест() используя рандом
setInterval('test()' ,   rand(1000, 10000) );

Последний раз редактировалось Livaanderiamarum, 26.12.2011 в 19:57.
Ответить с цитированием
  #3 (permalink)  
Старый 26.12.2011, 19:25
Аватар для FINoM
Новичок
Отправить личное сообщение для FINoM Посмотреть профиль Найти все сообщения от FINoM
 
Регистрация: 05.09.2010
Сообщений: 2,298

function test(text){
  alert('random alert ' + text);
}
(function runInterval() {
    interval = Math.random()*1000*9 + 1000;
    setTimeout(function(){
       test(interval);
       runInterval();
    }, interval);
})()

Последний раз редактировалось FINoM, 26.12.2011 в 19:33.
Ответить с цитированием
  #4 (permalink)  
Старый 26.12.2011, 19:26
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

Если не накосячил, а за мной это сегодня наблюдается , примерно так
(function() {
	var x = (Math.random() * 10) + 1 >> 0;
	alert("следующий вызов ~ " + x + " сек.");
	setTimeout(arguments.callee, x * 1000);
})();
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
Ответить с цитированием
  #5 (permalink)  
Старый 26.12.2011, 19:30
Профессор
Посмотреть профиль Найти все сообщения от Livaanderiamarum
 
Регистрация: 25.12.2011
Сообщений: 786

мой вариант как обычно лучший)))
помогает понять КАК)) и не содержит ненужных понтов и замыканий и.т.п.))
привет всем)
Ответить с цитированием
  #6 (permalink)  
Старый 26.12.2011, 19:48
Профессор
Посмотреть профиль Найти все сообщения от Livaanderiamarum
 
Регистрация: 25.12.2011
Сообщений: 786

Сообщение от nerv_ Посмотреть сообщение
Если не накосячил, а за мной это сегодня наблюдается , примерно так
(function() {
	var x = (Math.random() * 10) + 1 >> 0;
	alert("следующий вызов ~ " + x + " сек.");
	setTimeout(arguments.callee, x * 1000);
})();
оой, ты использовал рекурсию, в замыкании.. это та круто, теперь объясни это парню ))
Ответить с цитированием
  #7 (permalink)  
Старый 26.12.2011, 20:27
Профессор
Отправить личное сообщение для Vampir3 Посмотреть профиль Найти все сообщения от Vampir3
 
Регистрация: 06.12.2011
Сообщений: 172

всем спасибо) выбрал вариант Аватар для Livaanderiamarum'a
Ответить с цитированием
  #8 (permalink)  
Старый 26.12.2011, 20:33
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

Сообщение от Livaanderiamarum
оой, ты использовал рекурсию, в замыкании.. это та круто, теперь объясни это парню ))
1. Это не круто. Круто пишут старожилы форума. Я пока так не умею
2. Где там замыкание?
var x = (Math.random() * 10) + 1 >> 0; //эту строку можно запистаь без скобок, т.е.
var x = Math.random() * 10 + 1 >> 0;
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук

Последний раз редактировалось nerv_, 26.12.2011 в 20:41.
Ответить с цитированием
  #9 (permalink)  
Старый 26.12.2011, 20:38
Профессор
Отправить личное сообщение для zebra Посмотреть профиль Найти все сообщения от zebra
 
Регистрация: 14.09.2011
Сообщений: 523

Сообщение от Livaanderiamarum
мой вариант как обычно лучший)))
Сообщение от Livaanderiamarum
setInterval('test()' , rand(1000, 10000) );
eval
Ответить с цитированием
  #10 (permalink)  
Старый 26.12.2011, 20:39
Профессор
Посмотреть профиль Найти все сообщения от Livaanderiamarum
 
Регистрация: 25.12.2011
Сообщений: 786

Сообщение от nerv_ Посмотреть сообщение
1. Это не круто
2. Где там замыкание?
var x = (Math.random() * 10) + 1 >> 0; //эту строку можно запистаь без скобок, т.е.
var x = Math.random() * 10 + 1 >> 0;
я почему-то назвал ссылку на саму себя замыканием) не знаю почему) но все ровно твой пример не оч подходил для данного вопроса)

разве нет)? человеку же не понятно что ты написал) тогда в чем цель твоего обьяснения)? дать готовый вариант? он он не совсем это хотел) я бы предпочел научить его как делать рандом, именно это он и не понимал)
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать disabled кнопки во время отправки формы? Bad Request Events/DOM/Window 7 16.04.2014 13:49
setTimeout setInterval и др. mycoding Общие вопросы Javascript 6 28.10.2010 17:26
Снятие затемнения с экрана при получении ответа от php срипта с помощью setInterval roma86 jQuery 0 16.08.2009 12:39
разное время выполнения операции ropowek Events/DOM/Window 2 08.10.2008 13:27
Проблема в document.write при использовании setInterval() GOll Общие вопросы Javascript 21 06.10.2008 17:38