Бесконечный setTimeout(); правильно?
Привет друзья!!!
Возник простой вопрос, но думаю ответа Я знаю. Но хочу знать ответы экспертов в этой области. Можно ли поставить такой вот бесконечный setTimeout();
function aInfinity(){
...
setTimeout("aInfinity();", 111);
}
setTimeout("aInfinity();", 1111);
Вообще вопрос возник при попытка создать такую функцию, когда пользователь меняет положение ползунка на scroll-е. ![]() Тут функция просто молчит и даже нет реакции. А тут должна быть реакция. ![]() Вот как-то так. Спасибо. |
Цитата:
function aInfinity() {
...
setTimeout(aInfinity, 111);
};
setTimeout(aInfinity, 1111);
|
Max_Cohen,
а не проще отслеживать событие onscroll ? Бесконечный timeout - это плохо) |
Отличный вариант. Спасибо Вам!
Еще один вопрос к экспертам. Я добавил свой метод вот так:
Object.prototype.sa=function(t,a)
{
this.setAttribute(t,a);
}
Правильно ли этот вариант? Или нужно создать только функцию на подобие этого?
function a_sa(o,t,a)
{
o.setAttribute(t,a);
}
Cпасибо. |
Max_Cohen,
http://learn.javascript.ru/prototype |
Цитата:
В крайнем случае расширять через defineProperty. |
Max_Cohen, а чем Вам не понравился setInterval ?
|
Chiz, не знаю, чем он не понравился ему, но вообще проблема с setInterval в том, что он может в случае тормозов накапливаться, а потом единовременно пытаться применить кучу итераций, чтобы "догнать". При подходе же с setTimeout - при тормозах будет просто задержка следующего вызова.
|
Цитата:
<button onclick="clearInterval(interval)">Stop intreval</button>
Delay duration: <span id="delay_duration"></span>
<script>
var j = 0;
var interval = setInterval(function(){document.getElementById("output").innerHTML = ++j}, 500);
var date_before_delay = new Date();
for (var i = 0; i < 1000000000*2; i++)
;
var date_after_delay = new Date();
document.getElementById("delay_duration").innerHTML = date_after_delay - date_before_delay;
</script>
<div id="output">
</div>
|
Erolast, уверен?
http://jsfiddle.net/q2d5m/1/ |
| Часовой пояс GMT +3, время: 16:36. |