Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 29.07.2013, 09:02
Аватар для Max_Cohen
Интересующийся
Отправить личное сообщение для Max_Cohen Посмотреть профиль Найти все сообщения от Max_Cohen
 
Регистрация: 23.06.2013
Сообщений: 11

Бесконечный setTimeout(); правильно?
Привет друзья!!!

Возник простой вопрос, но думаю ответа Я знаю. Но хочу знать ответы экспертов в этой области.

Можно ли поставить такой вот бесконечный setTimeout();

function aInfinity(){
...
setTimeout("aInfinity();", 111);
}
setTimeout("aInfinity();", 1111);


Вообще вопрос возник при попытка создать такую функцию, когда пользователь меняет положение ползунка на scroll-е.


Тут функция просто молчит и даже нет реакции. А тут должна быть реакция.


Вот как-то так.
Спасибо.
Ответить с цитированием
  #2 (permalink)  
Старый 29.07.2013, 09:04
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,124

Сообщение от Max_Cohen
Можно ли поставить такой вот бесконечный setTimeout();
Можно

function aInfinity() {
   ...
   setTimeout(aInfinity, 111);
};
setTimeout(aInfinity, 1111);
Ответить с цитированием
  #3 (permalink)  
Старый 29.07.2013, 10:23
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 17.12.2011
Сообщений: 4,415

Max_Cohen,
а не проще отслеживать событие onscroll ?
Бесконечный timeout - это плохо)
__________________
Цитата:
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
Ответить с цитированием
  #4 (permalink)  
Старый 02.06.2014, 14:34
Аватар для Max_Cohen
Интересующийся
Отправить личное сообщение для Max_Cohen Посмотреть профиль Найти все сообщения от Max_Cohen
 
Регистрация: 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.
Ответить с цитированием
  #5 (permalink)  
Старый 02.06.2014, 16:17
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 17.12.2011
Сообщений: 4,415

Max_Cohen,
http://learn.javascript.ru/prototype
__________________
Цитата:
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
Ответить с цитированием
  #6 (permalink)  
Старый 02.06.2014, 17:45
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,499

Сообщение от Max_Cohen Посмотреть сообщение
Object.prototype.sa=function(t,a)
{
this.setAttribute(t,a);
}
Прототип объекта трогать не рекомендуется, т.к. в js - всё объект, и может вылезти куча глюков при неосторожности.
В крайнем случае расширять через defineProperty.
__________________
29375, 35
Ответить с цитированием
  #7 (permalink)  
Старый 02.06.2014, 21:46
Аспирант
Отправить личное сообщение для Chiz Посмотреть профиль Найти все сообщения от Chiz
 
Регистрация: 18.04.2012
Сообщений: 43

Max_Cohen, а чем Вам не понравился setInterval ?
Ответить с цитированием
  #8 (permalink)  
Старый 03.06.2014, 02:37
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,499

Chiz, не знаю, чем он не понравился ему, но вообще проблема с setInterval в том, что он может в случае тормозов накапливаться, а потом единовременно пытаться применить кучу итераций, чтобы "догнать". При подходе же с setTimeout - при тормозах будет просто задержка следующего вызова.
__________________
29375, 35
Ответить с цитированием
  #9 (permalink)  
Старый 03.06.2014, 21:58
Аватар для Erolast
Профессор
Отправить личное сообщение для Erolast Посмотреть профиль Найти все сообщения от Erolast
 
Регистрация: 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.
Ответить с цитированием
  #10 (permalink)  
Старый 04.06.2014, 13:44
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 17.12.2011
Сообщений: 4,415

Erolast, уверен?
http://jsfiddle.net/q2d5m/1/
__________________
Цитата:
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как правильно отслеживать вставку html() bombascter jQuery 15 20.11.2012 09:47
setTimeout, так правильно? person Общие вопросы Javascript 4 03.05.2012 13:28
setTimeout в браузере IE и Opera leha66 Javascript под браузер 2 13.12.2010 13:02
Как правильно прописать свой код в .js Всеми_Любимый Элементы интерфейса 6 23.02.2010 21:34
Как правильно послать XML в POST запросе LowCoder AJAX и COMET 10 15.07.2009 23:20