Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 19.12.2017, 08:03
Новичок на форуме
Отправить личное сообщение для FunnyH Посмотреть профиль Найти все сообщения от FunnyH
 
Регистрация: 19.12.2017
Сообщений: 3

Паралельное выполнение setInterval
Всем доброго времени суток!
С JavaScript работаю недавно. В ходе решения задачи возникла необходимость выполнять два setInterval параллельно, у каждого из них свой временной промежуток. Если выполнять их последовательно, то происходят потери, которые не нужны. Каким образом можно добиться параллельного выполнения двух setInterval?
Ответить с цитированием
  #2 (permalink)  
Старый 19.12.2017, 08:23
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,118

Сообщение от FunnyH
Каким образом можно добиться параллельного выполнения двух setInterval?
Никакой параллельности JS не обещает. Это может быть только частным случаем...
Т.е. можно просто запустить несколько раз этот метод. Но когда будут выполняться сами функции тебе никто не скажет. После истечения указанного таймаута.
Ответить с цитированием
  #3 (permalink)  
Старый 19.12.2017, 09:26
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,064

FunnyH,
может как-то без setInterval обойтись? есть же requestAnimationFrame и рекурсивный-settimeout
Ответить с цитированием
  #4 (permalink)  
Старый 19.12.2017, 10:40
Новичок на форуме
Отправить личное сообщение для FunnyH Посмотреть профиль Найти все сообщения от FunnyH
 
Регистрация: 19.12.2017
Сообщений: 3

Благодарю за предложение. Буду пробовать
Ответить с цитированием
  #5 (permalink)  
Старый 20.12.2017, 10:49
Новичок на форуме
Отправить личное сообщение для FunnyH Посмотреть профиль Найти все сообщения от FunnyH
 
Регистрация: 19.12.2017
Сообщений: 3

Спасибо за предложение, но к сожалению оно тоже не подходит. Сейчас есть примерно такой код.

setInterval(function(){
    //код выполняющийся за 20мс
}, 20);

setInterval(function(){
    //код, выполняющийся за 600 мс
}, 1000);


Во время выполнения второго setInterval, первый не выполняется. А мне необходимо, что бы первый выполнялся непрерывно
Ответить с цитированием
  #6 (permalink)  
Старый 20.12.2017, 12:20
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,064

FunnyH,
у вас там не запрос к серверу случайно?
Ответить с цитированием
  #7 (permalink)  
Старый 20.12.2017, 12:43
Аватар для Белый шум
Профессор
Отправить личное сообщение для Белый шум Посмотреть профиль Найти все сообщения от Белый шум
 
Регистрация: 19.01.2012
Сообщений: 498

FunnyH,
Яваскрипт - однопоточный, долгие функции блокируют выполнение всего остального кода. Если очень надо именно параллельное выполнение, то читайте про worker - но в нём не будет доступа к DOM страницы и ещё какие-то ограничения вроде есть.
Ответить с цитированием
  #8 (permalink)  
Старый 20.12.2017, 13:30
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,118

Сообщение от FunnyH
Во время выполнения второго setInterval, первый не выполняется.
Вот это кагбэ хотелось бы посмотреть на каком-то примере... Это разные потоки и по "работоспособности" они так влиять друг на друга не должны.
Пока не особо верю в такое.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ускоряется setInterval Tord002 Общие вопросы Javascript 1 10.12.2015 23:09
Оптимизация JS WeMeSder Общие вопросы Javascript 0 13.06.2014 23:51
setInterval и глобальные переменные Почемучкин Events/DOM/Window 11 11.08.2012 14:44
Паралельное выполнение 2х функций BorodinKO Общие вопросы Javascript 4 24.01.2012 14:15
Паралельное выполнение одной и той-же функции Сеня AJAX и COMET 3 24.01.2009 20:59