29.07.2013, 09:02
|
|
Интересующийся
|
|
Регистрация: 23.06.2013
Сообщений: 11
|
|
Бесконечный setTimeout(); правильно?
Привет друзья!!!
Возник простой вопрос, но думаю ответа Я знаю. Но хочу знать ответы экспертов в этой области.
Можно ли поставить такой вот бесконечный setTimeout();
function aInfinity(){
...
setTimeout("aInfinity();", 111);
}
setTimeout("aInfinity();", 1111);
Вообще вопрос возник при попытка создать такую функцию, когда пользователь меняет положение ползунка на scroll-е.
Тут функция просто молчит и даже нет реакции. А тут должна быть реакция.
Вот как-то так.
Спасибо.
|
|
29.07.2013, 09:04
|
|
CacheVar
|
|
Регистрация: 19.08.2010
Сообщений: 14,225
|
|
Сообщение от Max_Cohen
|
Можно ли поставить такой вот бесконечный setTimeout();
|
Можно
function aInfinity() {
...
setTimeout(aInfinity, 111);
};
setTimeout(aInfinity, 1111);
|
|
29.07.2013, 10:23
|
|
I am Student
|
|
Регистрация: 17.12.2011
Сообщений: 4,415
|
|
Max_Cohen,
а не проще отслеживать событие onscroll ?
Бесконечный timeout - это плохо)
__________________
Цитата:
|
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
|
|
|
02.06.2014, 14:34
|
|
Интересующийся
|
|
Регистрация: 23.06.2013
Сообщений: 11
|
|
Отличный вариант. Спасибо Вам!
Еще один вопрос к экспертам.
Я добавил свой метод вот так:
Object.prototype.sa=function(t,a)
{
this.setAttribute(t,a);
}
Правильно ли этот вариант? Или нужно создать только функцию на подобие этого?
function a_sa(o,t,a)
{
o.setAttribute(t,a);
}
Cпасибо.
Последний раз редактировалось Max_Cohen, 02.06.2014 в 14:39.
|
|
02.06.2014, 16:17
|
|
I am Student
|
|
Регистрация: 17.12.2011
Сообщений: 4,415
|
|
__________________
Цитата:
|
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
|
|
|
02.06.2014, 17:45
|
|
Тлен
|
|
Регистрация: 02.01.2010
Сообщений: 6,588
|
|
Сообщение от Max_Cohen
|
Object.prototype.sa=function(t,a)
{
this.setAttribute(t,a);
}
|
Прототип объекта трогать не рекомендуется, т.к. в js - всё объект, и может вылезти куча глюков при неосторожности.
В крайнем случае расширять через defineProperty.
__________________
29375, 35
|
|
02.06.2014, 21:46
|
Аспирант
|
|
Регистрация: 18.04.2012
Сообщений: 43
|
|
Max_Cohen, а чем Вам не понравился setInterval ?
|
|
03.06.2014, 02:37
|
|
Тлен
|
|
Регистрация: 02.01.2010
Сообщений: 6,588
|
|
Chiz, не знаю, чем он не понравился ему, но вообще проблема с setInterval в том, что он может в случае тормозов накапливаться, а потом единовременно пытаться применить кучу итераций, чтобы "догнать". При подходе же с setTimeout - при тормозах будет просто задержка следующего вызова.
__________________
29375, 35
|
|
03.06.2014, 21:58
|
|
Профессор
|
|
Регистрация: 24.09.2013
Сообщений: 1,436
|
|
Цитата:
|
что он может в случае тормозов накапливаться, а потом единовременно пытаться применить кучу итераций, чтобы "догнать".
|
Больше одной итерации никогда не накапливается.
<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, 03.06.2014 в 22:06.
|
|
04.06.2014, 13:44
|
|
I am Student
|
|
Регистрация: 17.12.2011
Сообщений: 4,415
|
|
__________________
Цитата:
|
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
|
|
|
|
|