danik.js,
эм, честно говоря я сам незнаю с чего я так решил, сейчас уже понимаю что с этим id я намудрил, ведь это же результат работы функции, тоесть это что - то, что идентифицирует работу нашего setInterval, чтобы потом мы смогли обратиться к нему чтобы остановить, но тогда по твоему сделать чтобы setInterval срабатывал скажем на одну секунду позже каждый следующий раз ? вот кстати ещё одна тчедная попытка это реализовать
var end = 5000;
var i = 1;
for (var t = 1000; t <= end; t += 1000) {
alert(i);
i = setInterval(function test() { alert("test" + t); i++; }, t);
alert("setting up new timer");
}
for (; i > 0; i--) {
clearInterval(i);
}
тут уже кстати говоря id увеличивается, но подозреваю что это не тот id - он просто налету создаёт новую переменную и алерит её а настоящий id видимо не трогает, и ещё кстати тут таймер тоже сбрасывается но setInterval выполняет test с нулевой задержкой ( короче опять магические алерты |
danik.js,
а вобще говоря осуществимо ли это или я зря пытаюсь по твоему? тоесть сделать так чтобы setInterval выполнял функцию каждый раз на одну секунду позже либо раньше... |
Открой для себя setTimeout ))
<script>
function setIncrementalInterval(callback, startInterval, increment) {
var timeout = startInterval;
(function fn() {
setTimeout(function(){
callback();
timeout += increment;
fn();
}, timeout);
})();
}
var lastTime;
var fn = function(){
var now = new Date();
var interval = now - lastTime;
document.body.innerHTML += interval + '<br />';
lastTime = now;
};
lastTime = new Date();
setIncrementalInterval(fn, 1000, 100);
</script>
|
danik.js,
хаха, нуда я вобщем то думал использовать setTimeout с рекурсией, просто хотелось понять тонкости этого setInterval' а - чего не вышло ( кстати мой код с рекурсией и setTimeout
function dynamicAlert (timer, increment, end) {
if (timer <= end) {
var intervals = timer/increment;
setTimeout (function () {
alert("прошло " + intervals + " cекунд");
dynamicAlert(timer, increment, end);
}, timer);
timer += increment;
}
else return false;
}
dynamicAlert (1000, 1000, 5000);
добавил ещё условие выхода из рекурсии =) |
danik.js,
а почему в твоём коде прибавляются ещё какие - то 1, 2 милисекунды каждый раз ? это таймер по дефолту прибавляется чтоли ? |
Arramis,
Реальная частота срабатывания |
| Часовой пояс GMT +3, время: 21:07. |