Javascript.RU

setInterval

Синтаксис

intervalID = window.setInterval(func|code, delay)

Аргументы

func|code
Функция или строка кода для выполнения
delay
Интервал в миллисекундах, т.е 1000 это 1 секунда

Описание, примеры

В отличие от метода setTimeout, setInterval выполняет код много раз, через равные промежутки времени, пока не будет остановлен при помощи clearInterval.

В каком виде указывать первый параметр - разницы нет.
При указании строки кода - динамически создается функция с телом code.

Следующие два вызова почти одинаковы:

// (1)
setInterval('alert("прошла секунда")', 1000) 

// (2)
function sec() { 
  alert("прошла секунда")
}
setInterval(sec, 1000) // использовать функцию

Но более правильным считается объявление функции в явном виде, например так:

setInterval(function() { alert(...) }, 1000)

Вызов со строкой существует для совместимости с прежними версиями javascript.

this

Функция выполняется в другом контексте, со значением this = window, поэтому о передаче правильного this надо позаботиться отдельно.

object = { 
   func: function() { alert(this) }
}

setInterval( object.func , 1000) // this будет равно window

// правильный вариант с передачей this
setInterval( function() { object.func.call(object) } , 1000)

Отмена выполнения

Вы можете отменить выполнение setInterval при помощи clearInterval, используя для этого идентификатор intervalID.

var intervalID = setInterval(...)
clearInterval(intervalID)

Автор: JSprog, дата: 16 августа, 2009 - 19:57
#permalink

Спасибо. Очень помогло.


Автор: Ramzess, дата: 19 сентября, 2009 - 23:42
#permalink

Я как-то писал программу, которая отсчитывает 60 секунд в обратном порядке.
Так вот, когда значение опускается до 56, интервал отсчёта составляет уже две секунды, потом 4, потом я сам со счёта сбился... В чём проблема, нужно парсить время отсчёта, или датить?


Автор: Гость (не зарегистрирован), дата: 8 августа, 2012 - 17:59
#permalink

да


Автор: Гость (не зарегистрирован), дата: 8 августа, 2012 - 18:08
#permalink

$('#hidden_auto_slide_seconds').val(auto_slide_seconds);


Автор: Гость (не зарегистрирован), дата: 27 января, 2015 - 22:19
#permalink

Надо пользоваться циклами


Автор: Гость (не зарегистрирован), дата: 27 января, 2015 - 22:19
#permalink

Надо пользоваться циклами


Автор: Гость (не зарегистрирован), дата: 2 ноября, 2009 - 12:39
#permalink

Недавно встретил эту функцию. Сам, только начал изучать веб-дизайн.


Автор: антигерой (не зарегистрирован), дата: 6 декабря, 2009 - 07:37
#permalink

Значение задержки ничуть не в милисекундах.

Счас вот гоняю цикл с НУЛЁВОЙ задержкой - а всёравно отрабатывается относительно медленно.

Немогу понять - в чём причина. Надо много быстрее чтобы работало.


Автор: Гость (не зарегистрирован), дата: 26 января, 2010 - 11:49
#permalink

Попробуй использовать setTimer(); мне помогает


Автор: Гость (не зарегистрирован), дата: 13 апреля, 2010 - 00:34
#permalink

Вызывайте первый раз функцию без очереди.

setInterval(foo, 1000);
foo();

function foo () {...}


Автор: Гость (не зарегистрирован), дата: 25 марта, 2011 - 03:09
#permalink

Мне помогло! Большое спасибо!
Задача была подгружать периодически с небольшим интервалом HTML из файла, на сервере и актуально обновлять таким образом информацию без перезагрузки страницы.
Вот код, который у меня получился, вдруг кому пригодится.
(в скрипте использовалась библиотека скриптов Jquery)
$(document).ready(function() {
setInterval(foo, 5000);
foo();
function foo () {$('#divClass').load('yourFile.html');}
});


Автор: Андрей38, дата: 15 апреля, 2011 - 01:09
#permalink

Вот код, который у меня получился, вдруг кому пригодится.
(в скрипте использовалась библиотека скриптов Jquery)
$(document).ready(function() {
setInterval(foo, 5000);
foo();
function foo () {$('#divClass').load('yourFile.html');}
});
Да!Конечно пригодиться !Cпасибо !


Автор: Scriptin (не зарегистрирован), дата: 14 августа, 2010 - 17:03
#permalink

Для цикла с нулевой задержкой используйте

for(;;) { 
  /* здесь любой код, но обязательно должна быть 
     хотя бы одна инструкция break для выхода */ 
}

Автор: Костя Шахмуров (не зарегистрирован), дата: 3 октября, 2010 - 17:33
#permalink

Как-то не нравится мне выражение "Но более правильным считается..." в справочнике. Если это справочник, то достаточно привести несколько примеров, и пользователь уже сам решит, что для него правильней. А если это учебник, то нужно аргументировать - почему это более правильно, чем другое. Мне что-то никак не понятно, почему более правильно задавать тело функции (которое может быть большим) прямо в вызове setInterval. Не лучше ли задать функцию где-то в сторонке, а в вызове setInterval указать только её имя?


Автор: jingvar (не зарегистрирован), дата: 22 октября, 2010 - 12:31
#permalink

setInterval('alert("прошла секунда")', 1000)

Хороший прикол. У меня в лисичке 70 страничек было открыто, вырубить только по F4 удалось.


Автор: uWeb, дата: 29 октября, 2010 - 17:14
#permalink

setInterval(function () {
alert("прошла секунда");
}, 1000);


Автор: Гость (не зарегистрирован), дата: 12 июля, 2013 - 01:36
#permalink

А Эсли бы это было не setInterval(alert('Прошла секунда')), 1000)

А что-то типа setInterval(alert('Milisecunda')), 1), то пришлось бы переустанавливать браузер Sad


Автор: Гость (не зарегистрирован), дата: 19 мая, 2015 - 13:41
#permalink

1) поэтому не стоит использовать alert в setInterval. Если уж очень надо, лучше использовать console.log.
2) В setInterval минимальный шаг 20 миллисекунд.


Автор: Гость (не зарегистрирован), дата: 12 июля, 2016 - 21:44
#permalink

В спецификации говорится, что минимальный шаг должен быть равен 4 мс
: https://html.spec.whatwg.org/multipage/webappapis.html#timers


Автор: Гость (не зарегистрирован), дата: 25 октября, 2010 - 17:40
#permalink

Почему-то эта функция работает как setTimout :-(
Контекст следующий:
есть функция:
function dlt(){
document.getElementById('count').value=ti10s;
ti10s--;

и 3 кнопки:


Так вот поле count обновляется всякий раз только по нажатию кнопки start, а не через каждые полсекунды , как замышлялось.
В чем может быть причина?

Автор: EuroFlock (не зарегистрирован), дата: 31 октября, 2010 - 10:44
#permalink

Рано или поздно может понадобиться передавать параметры в ту функцию, которая вызывается через указанный период времени. Делается это очень просто, все параметры указываются после миллисекунд и не нужно писать громоздкую функцию:

var time=1;
var name="first";
 
function timer(t,n) {
     alert(n+t);
     time++;
}

setInterval(timer, 1000, time, name); //setTimeout(timer, 1000, time, name);

Автор: Alexandr Naumenko (не зарегистрирован), дата: 13 января, 2013 - 14:01
#permalink

EuroFlock, молодец это действительно важный момент, на многих сайтах про этот момент умалчивают. Но для передачи параметров в функцию, вызываемую через Interval – это самый правильный и простой вариант!!!


Автор: Гость (не зарегистрирован), дата: 12 июля, 2013 - 01:26
#permalink

Не знаю, но лично мне кажется, что такое легче сделать так:

function timer() {
alert('first1')
}
setInterval(timer, 1000)

Автор: Technobulka (не зарегистрирован), дата: 21 февраля, 2011 - 00:17
#permalink

как быть, если мне надо запихнуть функцию с переменной? например:
function move(direction) { ... }
setInterval(move(true), 1000);


Автор: pavelb (не зарегистрирован), дата: 8 июня, 2011 - 12:21
#permalink

Вызов alert | confirm останавливает выполнение setInterval (поскольку модальное окно). Следующий код будет всегда ждать нажатия с клавиатуры:

<html>
<body onload='f1()'>
<script>
 function f1(){
  setInterval('alert("!!!")',1000);
 }
</script>
</body>
</html>

Автор: Pavelob (не зарегистрирован), дата: 8 октября, 2011 - 02:50
#permalink

У меня довольно скользкий вопрос:
делал слайдшоу

<img id="photo1" style="position: relative; z-index: 200; display: block;width:100%;">
<img id="photo2" style="position: relative; z-index: 100; display: none;width:100%;">
<script>
 var imgs = ["images/slide/f1.jpg",
 "images/slide/f2.jpg",
 "images/slide/f3.jpg",
 "images/slide/f4.jpg"];
 var j=1;

var cnt = imgs.length-1; 

jQuery('#photo1').attr('src',imgs[0]);

jQuery('#photo2').attr('src',imgs[1]);

setInterval("photos()",10000);
function photos() {
jQuery('#photo1').fadeOut(1000, function() {
jQuery(this).attr('src',imgs[j]).fadeIn(1000);
});
j++;
if(j>cnt) {
j=0;
}
jQuery('#photo2').attr('src',imgs[j]);
}

Все работает отлично только 1 минус при каждой смене фотографии идет скачет на эту фотографию при выполнении setInterval("photos()",10000);
если страничка длинная то когда прокручиваю вниз страницу при смене фотографии опять прокручивается на нее как это исправить ?


Автор: Sn0oSm0oMrIK (не зарегистрирован), дата: 7 марта, 2012 - 00:08
#permalink

Как вариант, грузить все картинки сразу, задав всем кроме активной display:none, а при следующей итерации интервала скрывать все и показывать следующую.
Конечно, если картинок много, то это не лучший вариант...


Автор: Гость (не зарегистрирован), дата: 20 октября, 2011 - 18:39
#permalink

Здравствуйте, допустим есть следующий код:

setInterval(function(){
        $('#slide').animate({
            left:$(this).attr('left')
        });
}, 5000);

При неактивной вкладке в firefox или chrome интервал времени продолжает считаться, но анимация останавливается в фоне, после перехода на вкладку элементы начинают "перебегать" без интервала пока не сменятся столько раз, сколько бы сменились в фоновом режиме вкладки...
Как бороться с этим? Как остановить счетчик времени в setInterval() или заставить анимацию исполняться в фоновой вкладке?


Автор: Гость (не зарегистрирован), дата: 24 октября, 2011 - 11:30
#permalink

Насколько мне известно, невозможно заставить браузеры воспроизводить анимацию в фоновой вкладке. Я даже удивлен, что интервал вообще работает, т.к. мои наблюдения показывали, что исполнение кода вообще приостанавливается, и не только JS, но и расширений (flash). И это логично: если пользователь не смотрит на страницу сайта - он с ней не взаимодействует, а значит нет никакого смысла запускать "свистелки" и "дуделки". А также мы имеем более правильную информацию в таких системах, как google analytics, которые сообщают сколько времени пользователь реально контактировал с сайтом.


Автор: Sn0oSm0oMrIK (не зарегистрирован), дата: 7 марта, 2012 - 00:00
#permalink

Это, в принципе, верный подход. Но что если кому-то нужно прикрутить js-ный таймер или еще какую-то вещь, требующую более или менее точного подсчета времени от начала использования интервала?
С этой стороны хорошо, что setInterval работает и в фоне.


Автор: любитель старины (не зарегистрирован), дата: 4 ноября, 2012 - 08:23
#permalink

Вы не правы. ибо setInterval'у - обсолютно пофиг на все анализаторы гугла, как и на неверные мнения.
функция - продолжает работу, т.к. при смене фокуса/переходе на другую вкладку и т.д. - не происходит останова функции (clearInterval - не задействуется, а только он вправе остановить выполнение setInterval)!


Автор: KiTE, дата: 17 декабря, 2011 - 03:50
#permalink

Я делал костыль.
Перед запуском анимации ставил свой флаг состояния. А после завершения его снимал. А, в начале интервального обработчика делал проверку.

На примере вашего кода это будет выглядеть так:

setInterval(function(){
    if( !$('#slide').data('animated') ){
        $('#slide').data('animated', true);
        $('#slide').animate({
            left:$(this).attr('left')
        }, function(){
            $('#slide').data('animated', false);
        });
    }
}, 5000);

Получается что, когда вкладка становится неактивной, анимация приостанавливается, и калбек аниматора в неактивной вкладке не отработает. То есть, setInterval в неактивной вкладке будет гонять пустые циклы. В момент активации вкладки анимация дойдет до конца, флаг сбросится и весь механизм заработает заново.


Автор: Tails, дата: 15 февраля, 2012 - 23:34
#permalink

setInterval(function() { alert(...) }, 1000)
Анонимная функция - рекомендуемое решение ? очень сомнительный совет.


Автор: Гость (не зарегистрирован), дата: 12 июля, 2016 - 21:49
#permalink

Чтобы не создавать лишнее имя и не засорять глобальное пространство имен. Анонимные функции рулят.


Автор: Гость (не зарегистрирован), дата: 26 февраля, 2012 - 11:40
#permalink

а можно место alert написать document.write


Автор: Sn0oSm0oMrIK (не зарегистрирован), дата: 6 марта, 2012 - 23:54
#permalink

Можно.


Автор: Sn0oSm0oMrIK (не зарегистрирован), дата: 6 марта, 2012 - 23:52
#permalink

А возможно ли как-нибудь в качестве задержки использовать переменную?
что-то вроде этого:

var delay = 1000
setInterval(function() {
    alert(...);
    delay += 100;
}, delay);

Автор: gyrdym, дата: 7 апреля, 2012 - 01:07
#permalink

интервал создастся один раз, изменение переменной delay внутри функции никак не повлияет на интервал.


Автор: gyrdym, дата: 6 апреля, 2012 - 12:45
#permalink

Впринципе, можно и подобие многопоточности реализовать в яваскрипте))))


Автор: Гость (не зарегистрирован), дата: 21 мая, 2012 - 04:28
#permalink

var int=self.setInterval("clock()",1000);
function clock()
{
var d=new Date();
var t=d.toLocaleTimeString();
document.getElementById("clock").value=t;
}

Stop


Автор: Гость (не зарегистрирован), дата: 21 мая, 2012 - 04:29
#permalink
<body>

<input type="text" id="clock" />
<script language=javascript>
var int=self.setInterval("clock()",1000);
function clock()
  {
  var d=new Date();
  var t=d.toLocaleTimeString();
  document.getElementById("clock").value=t;
  }
</script>

<button onclick="int=window.clearInterval(int)">Stop</button>

</body>

Автор: Гость (не зарегистрирован), дата: 13 августа, 2012 - 23:01
#permalink

тестил скорость перерисовки canvas

$(function(){
	canvas = document.getElementById("canvas");
	c = canvas.getContext("2d");
	canvas.width = window.innerWidth;
	canvas.height = window.innerHeight;
	window.onresize = function(e){
		canvas.width = window.innerWidth;
		canvas.height = window.innerHeight;
	}
	function setPixel(imageData, x, y, r, g, b, a) {
    index = (x + y * imageData.width) * 4;
    imageData.data[index+0] = r;
    imageData.data[index+1] = g;
    imageData.data[index+2] = b;
    imageData.data[index+3] = a;
	}
	// read the width and height of the canvas
	width = canvas.width;
	height = canvas.height;
	// create a new pixel array
	setInterval(function(){
		// draw random dots
		image = c.createImageData(width, height);
		for (i = 0; i < 1000; i++) {
		    x = Math.random() * width | 0; // |0 to truncate to Int32
		    y = Math.random() * height | 0;
		    r = Math.random() * 256 | 0;
		    g = Math.random() * 256 | 0;
		    b = Math.random() * 256 | 0;
		    setPixel(image, x, y, r, g, b, 255); // 255 opaque
		}
		// copy the image data back onto the canvas
		c.putImageData(image, 0, 0); // at coords 0,0
	}, 40) // 25 frames per second
});
<!HTML>
<html>
	<head>
		<script type="text/javascript" src="/js/script.js"></script>
	</head>
	<body 
		style="width:100%;height:100%;background:#000;">
		<canvas 
			id="canvas" 
			style="position:absolute;top:0;left:0;">
			canvas
		</canvas>
	</body>
</html>

работает превосходно, но где то раз в 3 секунды, изображение замирает на долю секунды, как будто пара - другая запусков не срабатывает
кто нибудь наблюдал нечто подобное? и если да, то как пофиксил?


Автор: Гость (не зарегистрирован), дата: 30 декабря, 2013 - 01:39
#permalink

Не очень хочется заморачиваться, но иногда возникает ситуация, когда предидущий кадр еще не успел прорисоваться, а уже срабатывает таймер для прорисовки следующего, тут нужно грамотный рендер, в webgl (3d контекст конваса), кажется, есть рендер, который работает как таймер, но отслеживает подобную ситуацию. Вообще из-за вашего комментария по ключам javascript.ru canvas api гугл выдал эту страницу Blink


Автор: WarGot (не зарегистрирован), дата: 11 октября, 2012 - 12:11
#permalink

Полезная статья. Спасибо, помогло с разработкой чата.


Автор: Гость (не зарегистрирован), дата: 27 декабря, 2012 - 04:40
#permalink

здравствуйте ребят помогите пожалуйста проблема такая хочу следить за сайтом ну к примеру возьмем "форум где надо авторизоваться при входе и тока потом будут видны комментарии" так вот как написать такой код который бы следил за этим форумом то есть при изменений сайта или форума мне выдавало звуковое оповещение или что то в этом роде и при этом когда я пуду включать слежку он сам авторизовался то есть чтоб я мог сохранить там логин и пароль один раз и кажди раз как буду включать чтоб ничего не надобыло уже... и без разницы на чем будет написан главное чтоб такое организовать тока я пока начиню в программировании и сам никак не справлюсь прощу помогите пожалуйста


Автор: Гость (не зарегистрирован), дата: 5 января, 2013 - 19:34
#permalink

самый непонятный справочник


Автор: vitnet (не зарегистрирован), дата: 15 марта, 2013 - 15:08
#permalink

Подскажите пожалуйста как быть с таким примером, как полностью остановить new_1 и new_2 и вставить new_3?

var new_1 = "text 1";
var new_2 = "text 2";
var new_3 = document.title;

function new_msg(){
    if(document.title == new_2){
         document.title = new_1;
    }else{
         document.title = new_2;
    }
}
var timer = setInterval(new_msg,1000);

Автор: Гость (не зарегистрирован), дата: 14 апреля, 2013 - 04:29
#permalink

setInterval("skClick(6,3);", 1000)
помогите прочитать что обозначает команда skClick(6,3) и именно цифры (6,3)


Автор: Гость (не зарегистрирован), дата: 10 июля, 2013 - 00:29
#permalink

Такой вопрос:

Написал скрипт, который плавно предает объекту прозрачность:

setTimeout(function() {document.getElementById('element').style.opacity = '1.0'}, 50)
setTimeout(function() {document.getElementById('element').style.opacity = '0.9'}, 100)
setTimeout(function() {document.getElementById('element').style.opacity = '0.8'}, 150)
setTimeout(function() {document.getElementById('element').style.opacity = '0.7'}, 200)
setTimeout(function() {document.getElementById('element').style.opacity = '0.6'}, 250)
setTimeout(function() {document.getElementById('element').style.opacity = '0.5'}, 300)

Можно ли сделать это с помощью setInterval, чтобы не городить адское количество программного кода, или есть какой - то другой способ это сделать?


Автор: Гость (не зарегистрирован), дата: 30 декабря, 2013 - 00:58
#permalink

Не можно, а нужно. Сейчас не скажу как это выглядит на js, но задача ставится примерно так: нужно изменить свойство prop (в вашем случае это opacity) от oldState до newState за время T (общее время анимации/действия/чего угодно) c периодом изменений P (т.е. число кадров/колебаний/чего угодно в секунду, т.е. 30 кадров в секунду, это 1/30 секунды). Т.е. prop, oldState, newState, T, P - это входные данные.

Значит время для таймера = 1/P*1000 (не забываем про милисекунды).
Перед запуском нужно запомнить время старта tStrat.

Нужна связь между временем и значениями изменяемого параметра, т.е. предположим координата Х объекта должна измениться от 100 до 200 за 10 секунд (помните школу? поезд выехал из точки А в точку Б...), значит через 5 секунд у объекта координата Х станет равна 150, т.е. (200-100)/10*5 + 100 (весь путь разделиди на время - получили скорость, скорость умножили на время - получили пройденный путь) получаем формулу:
prop = (newState - oldState)/T*(now-tStart) + oldState

Просто? Но это только начало анализа. хз зачем пишу, обычно мимо прохожу.


Автор: Гость (не зарегистрирован), дата: 30 декабря, 2013 - 01:12
#permalink

Ок, добавлю, чтоб было красивее. Поменяем местами некоторые значения в формуле prop = (newState - oldState)*(now-tStart)/T + oldState
Обратите внимание на (now-tStart)/T. now-tStart это время от начала анимации до текущего момента, в самом начале = 0, в конце анимации = T. отношении прошедшего времени ко времени всей анимации (now-tStart)/T будет изменяться от 0 до 1. Назовем этот параметр deltaT (deltaT = (now-tStart)/T), тогда
prop = (newState - oldState) * deltaT + oldState
Отдельно вынеся параметр deltaT можно использовать его в дополнительной функции, например изменять так: deltaT = deltaT*deltaT (deltaT в квадрате, т.е. квадратичная функция, тогда парметр будет медленне изменяться вначале, но быстрее к концу).


Автор: Гость (не зарегистрирован), дата: 9 августа, 2013 - 12:14
#permalink

А чтоб заставить SetInterval при запуске обновить инфу в элементе (а далее через период).


Автор: Гость (не зарегистрирован), дата: 9 августа, 2013 - 12:27
#permalink

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


Автор: Гость (не зарегистрирован), дата: 11 ноября, 2013 - 23:39
#permalink

Мне может кто-нибудь помочь,научите или обьесните как взломать браузерские игры


Автор: Гость (не зарегистрирован), дата: 30 декабря, 2013 - 01:17
#permalink

Ложись спать, мама ругать будет.


Автор: dvomaks (не зарегистрирован), дата: 4 апреля, 2014 - 18:25
#permalink

Поломал мозг, почему не срабатывает setInterval. Может решение и лежит где-то на поверхности, но я в ступоре. Аж в голове булькает - так мозг кипит.

$(document).ready(function () {
    setInterval(Load, 2000); // создаём таймер который будет вызывать загрузку сообщений каждые 2 секунды (2000 милесукунд)
});

var load_in_process = false; 

function Load() {
    // Проверяем можем ли мы загружать сообщения. Это сделанно для того, что бы мы не начали загрузку заново, если старая загрузка ещё не закончилась.
    if(!load_in_process)
    {
	    load_in_process = true; // загрузка началась
	    
    	$.post("/auction.php", 
    	{
      	    act: "load", // указываем на то что это загрузка сообщений
			rand: (new Date()).getTime()
    	},
		function(data){
			$('#bank').empty();
			$('#bank').append(data[0]);
			$('#bet').empty();
			$('#bet').append(data[1]);
			$('#betted').empty();
			$('#betted').append(data[2]);
			$('#time').empty();
			$('#time').append(data[3]);
		},
			'json'
		);
    }
}

Автор: Гость (не зарегистрирован), дата: 7 апреля, 2014 - 11:00
#permalink

$(document).ready надо вызывать поcле объявление Load


Автор: Жека11112 (не зарегистрирован), дата: 12 мая, 2014 - 09:45
#permalink

Добрый день!
Как сделать так что-бы у меня обновлялось количество новых сообщений, например как в контакте.
Или например есть сайт с анекдотами, и при добавлении в определенную категорию анекдота счетчик количества анекдотов добавлял в той сумме +1


Автор: SnegManul (не зарегистрирован), дата: 29 мая, 2014 - 07:37
#permalink

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


Автор: manYhis, дата: 7 октября, 2014 - 13:57
#permalink

создай отдельную таблицу в базе например reset и создай идин столбец например change и при определенный дествиях делай аякс запрос например через $.post(); и измени значение в базе в столбце change на 1 и у тебя должен быть setInterval проверяющий есть ли в таблицу reset в столбце change число 1 если data = 1 т.е если есть то делай определнные действия )) если не понял могу по лучше объяснить))


Автор: SnegManul (не зарегистрирован), дата: 29 мая, 2014 - 07:34
#permalink

Я в js не силен, если у кого есть время буду рад помощи

var array =  [    
    [5402,13784],
    [73542,13785],
    ]
 
var i = 0;
    

function farming() {

    Accountmanager.farm.sendUnits(this,array[i][0],array[i][1]);

    if (i < 2) {
      i++; 
    }
    if(i==2){
      i=0;
    // необходимо что бы при совпадении этого условия делалась задержка на 10 минут например. И рекурсии дальше продолжалась.  Пока работает нон стопом рекурсия делает круг и по новой.
    }
}

setInterval(farming, 500);

Пытался нагуглить, но не смог найти.


Автор: Calvin (не зарегистрирован), дата: 4 июня, 2014 - 02:51
#permalink

Вот за это
setInterval( function() { object.func.call(object) } , 1000)

только для того чтобы передать параметр javascript должен быть уничтожен


Автор: Jekel, дата: 27 июня, 2014 - 13:47
#permalink

Чего this._timerBeep() выполняется только один раз?

var Module = sys.Class.extend({

    _init: function() {
        console.log('_init!');
        setInterval(this._timerBeep(), 1000);
    },

    _timerBeep: function(){
        console.log('_timerBeep!');
        this.update();
        this.draw();
    },

    update: function() {
        console.log('update!');
    },

    draw: function(){
        console.log('draw!');
    }

});

Module2 = Module.extend();
new Module2();

Console log:

_init!
_timerBeep!
update!
draw!


Автор: manYhis, дата: 7 октября, 2014 - 13:50
#permalink

Я хотел бы спросить влияет ли использования много интервалов setIntervals, на зависания компа , у меня через интервалы идут запросы к базе не всегда интервал всегда включен но запросы идет по определенным действия пользователя, или мой комп глючит или на самом деле и влияет, буду благодарен за разумный ответ


Автор: BRIGSS, дата: 11 марта, 2015 - 18:55
#permalink

как не оборачивая в функцию писать код в setInterval("alert(1)
alert(6);
", 100)


Автор: Гость (не зарегистрирован), дата: 19 мая, 2015 - 13:51
#permalink

Во первых, ты точку с запятой пропустил.
Во вторых, а чем тебя не устраивает оборачивание в функцию?

setInterval(function(){
  //Код
}, 100)

Автор: Avissian, дата: 7 сентября, 2015 - 13:09
#permalink

Почему-то описание неверное. Вот так же:
var intervalId = setInterval(func / code, delay[, arg1, arg2...])

Нюанс использования аргументов не описан. Следующий код под Node.js показывает суть

var b = [];
var test = function (txt) {
  console.log('Elapsed ' + txt);
};

for (i = 0; i < 10; i++)
  b.push(setInterval(function (/*arg1*/a) {
    test(/*arg1*/a + ' ' + /*no arg*/i);
  }, 1000, /*arg1*/i));

i = 5;

Вывод:
Elapsed 0 5
Elapsed 1 5
Elapsed 2 5
Elapsed 3 5
Elapsed 4 5
Elapsed 5 5
Elapsed 6 5
Elapsed 7 5
Elapsed 8 5
Elapsed 9 5
...


Отправить комментарий

Приветствуются комментарии:
  • Полезные.
  • Дополняющие прочитанное.
  • Вопросы по прочитанному. Именно по прочитанному, чтобы ответ на него помог другим разобраться в предмете статьи. Другие вопросы могут быть удалены.
    Для остальных вопросов и обсуждений есть форум.
P.S. Лучшее "спасибо" - не комментарий, как все здорово, а рекомендация или ссылка на статью.
Содержание этого поля является приватным и не предназначено к показу.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Разрешены HTML-таги: <strike> <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <u> <i> <b> <pre> <img> <abbr> <blockquote> <h1> <h2> <h3> <h4> <h5> <p> <div> <span> <sub> <sup>
  • Строки и параграфы переносятся автоматически.
  • Текстовые смайлы будут заменены на графические.

Подробнее о форматировании

CAPTCHA
Антиспам
7 + 0 =
Введите результат. Например, для 1+3, введите 4.
 
Поиск по сайту
Реклама
Содержание

Учебник javascript

Основные элементы языка

Сундучок с инструментами

Интерфейсы

Все об AJAX

Оптимизация

Разное

Дерево всех статей

Последние комментарии
Последние темы на форуме
Forum