Бесконечный 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, время: 18:34. |