Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 17.11.2014, 15:49
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

просроченные интервалы могут выполняться друг за другом без задержки, поэтому чаще всего используют таймауты
Ответить с цитированием
  #12 (permalink)  
Старый 17.11.2014, 16:55
Профессор
Посмотреть профиль Найти все сообщения от krutoy
 
Регистрация: 09.11.2014
Сообщений: 610

Octane,
Че то не верится. Какая разница? Можещь написать тестовый пример, простенький?
Ответить с цитированием
  #13 (permalink)  
Старый 17.11.2014, 17:05
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

это старая избитая тема, в интернете полно статей
Сообщение от John Resig
If a timer is blocked from immediately executing it will be delayed until the next possible point of execution (which will be longer than the desired delay).
Intervals may execute back-to-back with no delay if they take long enough to execute (longer than the specified delay).
http://ejohn.org/blog/how-javascript-timers-work/
перевод: http://habrahabr.ru/post/138062/

ну и еще до кучи
http://alljs.ru/articles/timeout/setinterval

Последний раз редактировалось Octane, 17.11.2014 в 20:13.
Ответить с цитированием
  #14 (permalink)  
Старый 17.11.2014, 18:51
Профессор
Посмотреть профиль Найти все сообщения от krutoy
 
Регистрация: 09.11.2014
Сообщений: 610

Octane,
Почему же тогда тут setInterval не перекрывает setTimeout?
st=function(){return setTimeout(function(){console.log("setTimeout"); timeoutId=st()}, 3)}
si=function(){return setInterval(function(){console.log("setInterval")}, 3)}


stop=function(){setTimeout(function() {clearTimeout(timeoutId); clearInterval(intervalId)}, 3000)}
     
stop()
timeoutId=st()
intervalId=si()
i=100000000
console.time("cycle")
while(i--){}
console.timeEnd("cycle")

//     cycle: 1796ms
//     setTimeout
//     setInterval
//     setTimeout
//     setInterval
//     setTimeout
//     setInterval
//     ...
Ответить с цитированием
  #15 (permalink)  
Старый 17.11.2014, 20:12
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

мне лень писать test case)

Resig говорит про время исполнения колбека, наверное как-то так http://habrahabr.ru/post/138062/#comment_4604133 пример будет выглядеть

Последний раз редактировалось Octane, 17.11.2014 в 20:16.
Ответить с цитированием
  #16 (permalink)  
Старый 17.11.2014, 23:21
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от krutoy
однако это не повод писать через жопу.
Да оба варианта через жопу))
В идеале тут нужно использовать requestAnimationFrame. К слову, схема его использования схожа именно с setTimeout.
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #17 (permalink)  
Старый 17.11.2014, 23:39
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от рони
почему не работает в хроме
В хроме не отрабатывает такой селектор внутри ноды пока не завершится парсинг ноды. А скрипт, как известно, приостанавливает процесс парсинга.
Вообще, выглядит как баг. Видимо, побочный эффект от оптимизаций.
__________________
В личку только с интересными предложениями

Последний раз редактировалось danik.js, 17.11.2014 в 23:52.
Ответить с цитированием
  #18 (permalink)  
Старый 17.11.2014, 23:51
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

function randomRGBColor() {
    return Math.round(Math.random() * 0xFFFFFF).toString(16);
}


Вот такой вот HEX вариант )
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #19 (permalink)  
Старый 17.11.2014, 23:53
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,081

Сообщение от danik.js
Вот такой вот HEX вариант )
не катит
Ответить с цитированием
  #20 (permalink)  
Старый 17.11.2014, 23:55
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,081

Сообщение от danik.js
В хроме не отрабатывает такой селектор внутри ноды пока не завершится парсинг ноды
ок добавил window.onload таймер стал ненужен, вот тебе и ставьте скрипт в конце body
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
При клике на ссылку смена класса соседнего DIV arborik jQuery 2 23.07.2014 01:00
Сохранение цвета рамки DIV при нажатии, и сброс при нажатии на другой DIV этого класа Webtest Элементы интерфейса 3 29.06.2014 22:13
Смена цвета текста по кругу! JS_Den Общие вопросы Javascript 4 18.02.2012 14:39
Бесконечная смена цвета текста iGusse Элементы интерфейса 4 08.10.2011 22:03
Смена Div по ссылке ketvil Элементы интерфейса 5 10.06.2011 13:31