Форум программистов, компьютерный форум, киберфорум
JavaScript для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 19.12.2017
Сообщений: 4

Паралельное выполнение setIntervalk

19.12.2017, 08:28. Показов 714. Ответов 9

Студворк — интернет-сервис помощи студентам
Всем доброго времени суток!
С JavaScript работаю недавно. В ходе решения задачи возникла необходимость выполнять два setInterval параллельно, у каждого из них свой временной промежуток. Если выполнять их последовательно, то происходят потери, которые не нужны. Каким образом можно добиться параллельного выполнения двух setInterval?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
19.12.2017, 08:28
Ответы с готовыми решениями:

Паралельное выполнение процессов
Добрый день! Подскажите пожалуйста: Есть два потока и есть какой то объект, как сделать так, что бы если один поток занят работой с...

Паралельное зацыкленное выполнение заданий
Например нужно выводить некоторые строки в определенный период времени, независимо друг от друга: System.out.println("Эта строка...

Паралельное воспроизведение
На куче кнопок есть код воспроизведения звука в зависимости от радиобатона (Если что то делаю пианино) if (radioButton1.Checked == true) ...

9
Эксперт JS
2463 / 1769 / 625
Регистрация: 11.07.2016
Сообщений: 4,067
19.12.2017, 09:31
А в чём собственно проблема? setInterval() асинхронен по умолчанию.
JavaScript
1
2
3
4
5
6
7
setInterval(function() {
  // code1 here
}, t1);
 
setInterval(function() {
  // code2 here
}, t2);
0
0 / 0 / 0
Регистрация: 19.12.2017
Сообщений: 4
19.12.2017, 09:35  [ТС]
Проблема такого кода, что второй setInterval на время выполнения останавливает работу первого setInterval
0
Эксперт JS
2463 / 1769 / 625
Регистрация: 11.07.2016
Сообщений: 4,067
19.12.2017, 09:50
Цитата Сообщение от FunnyH Посмотреть сообщение
второй setInterval на время выполнения останавливает работу первого setInterval
Шта?

Добавлено через 19 секунд
Они исполняются в разных потоках...

Добавлено через 3 минуты
https://codepen.io/anon/pen/ypONJE
0
the hardway first
Эксперт JS
 Аватар для j2FunOnly
2475 / 1847 / 910
Регистрация: 05.06.2015
Сообщений: 3,610
19.12.2017, 10:17
Цитата Сообщение от Balanaar Посмотреть сообщение
Они исполняются в разных потоках...
А вот и нет, браузер выполняет скрипты в одном потоке
HTML5
1
2
<div id="d1"></div>
<div id="d2"></div>
JavaScript
1
2
3
4
5
6
7
8
setInterval(function() {
  for (var i = 0; i < 10000000; i++) { Math.random(); };
  d1.innerHTML += '.';
}, 500);
 
setInterval(function() {
  d2.innerHTML += '.';
}, 50);
https://codepen.io/j2FunOnly/pen/qpZdyO
Обратите внимание на вторую линию - она заполняется рывками, задерживаясь на время выполнения функции в первом интервале.
2
Эксперт JS
2463 / 1769 / 625
Регистрация: 11.07.2016
Сообщений: 4,067
19.12.2017, 10:20
Хм... и правда. Всю жизнь думал, что потоки у разных интервалов разные.
0
0 / 0 / 0
Регистрация: 19.12.2017
Сообщений: 4
20.12.2017, 07:15  [ТС]
Это все здорово! Но как это обойти?
0
566 / 465 / 183
Регистрация: 14.10.2017
Сообщений: 1,259
20.12.2017, 08:38
FunnyH, насколько я понимаю,стандарт не гарантирует выполнение setInterval в строго указанное время, стандарт гарантирует что пауза будет не менее указанного времени. А там уже от очереди зависит, возможны задержки.
0
0 / 0 / 0
Регистрация: 19.12.2017
Сообщений: 4
20.12.2017, 10:30  [ТС]
klopp, Это я понимаю. Может есть альтернативные решения задачи?
0
566 / 465 / 183
Регистрация: 14.10.2017
Сообщений: 1,259
20.12.2017, 10:36
Цитата Сообщение от FunnyH Посмотреть сообщение
Может есть альтернативные решения задачи?
Есть.Написать свой браузер.)))
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
20.12.2017, 10:36
Помогаю со студенческими работами здесь

Паралельное программирование, работа с процессами
Итак есть две программки, состоящие из главной функции и одной простенькой функции делающей инкремент целочисленного параметра. Ну к...

Паралельное изменение значений comboBox
Здравствуйте! У меня возник один неприятный момент: есть два comboBox'а, я заполняю их одинаковыми данными, и когда я выбираю одно значение...

Паралельное вычисление минимального значения двух массивов
Выполнить паралельное вычисление минимального значения для двух массивов. Вывести результат через MessageBox/. Добавлено через 29...

Паралельное вычисление минимального значения для двух массивов
Выполнить паралельное вычисление минимального значения для двух массивов. Вывести результат через MessageBox Добавлено через 18 минут ...

Возможно ли: выполнение подпрограммы в отдельном процессе, одновременное выполнение двух подпрограмм?
Всех приветствую :handshake: Пример @echo off call :PROG1 call :PROG2 exit /b :PROG1


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru