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

Временно запретить прерывание

07.06.2024, 22:04. Показов 569. Ответов 5

Студворк — интернет-сервис помощи студентам
Здравствуйте!
Можно ли в скрипте временно задержать выполнение событий, пока не будет выполнена последовательность кода? Мне важно, чтобы в событиях не были изменены переменные, которые участвуют в этом "защищаемом" блоке, т.к. результат тогда будет некорректный, ведь часть переменных остались старыми, а часть обновилась.
Как только эти строчки кода будут отработаны, события должны снова включиться в работу. Очень желательно, чтобы они не были потеряны. Т.е., если, например, во время исполнения защищённого блока была нажата кнопка мыши, то пусть она будет отработана, но после завершения блока.
Спасибо!
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
07.06.2024, 22:04
Ответы с готовыми решениями:

Можно ли запретить или временно приостановить удаление дочерних объектов?
Доброго времени суток! Ситуация: Делегат, в делегате создаю свой ComboBox, в котором есть указатель на внешний диалог и слот связанный...

Как временно запретить доступ на сайт, чтобы там было написано
Как временно запретить доступ на сайт, чтобы там было написано: идет реконструкция сайта

Запретить прерывание программы в IDE по исключению Except
Как сделать чтобы выполнился код после блока Except при этом не прерывая выполнение программы (Помимо отключения подсказки Exception Notify...

5
 Аватар для voraa
1249 / 1153 / 178
Регистрация: 21.01.2024
Сообщений: 5,380
08.06.2024, 08:31
В Js нет прерываний. Js выполняется в одном потоке и никакое событие не может прервать выполняемый код. Обработка любого события начинается только тогда, когда выполняемый в данный момент код будет выполнен полностью. События не "теряются" - они ставятся в очередь.
1
250 / 184 / 58
Регистрация: 12.03.2021
Сообщений: 1,043
10.06.2024, 11:13
не очень понял, но будто бы это про таймауты. или что-то типа жизненного цикла (react). или ещё что-то =/
0
Эксперт JSЭксперт HTML/CSS
 Аватар для krvsa
3823 / 1661 / 428
Регистрация: 14.03.2022
Сообщений: 4,168
10.06.2024, 11:38
Цитата Сообщение от Splaisto Посмотреть сообщение
не очень понял ...
Для понимания стоит почитать про "Событийный цикл" в учебнике.
https://learn.javascript.ru/event-loop

Так же желательно делать тестовые примеры для демонстрации свои х проблем. На них же могут показать варианты их решений.
0
 Аватар для voraa
1249 / 1153 / 178
Регистрация: 21.01.2024
Сообщений: 5,380
10.06.2024, 11:41
Лучший ответ Сообщение было отмечено DigitalTony как решение

Решение

Это про все. Про любые события. Реакт это все равно js. И при работе он использует те же самые механизмы цикла событий Js.
Работает это так.
Когда происходит событие, оно ставится в очередь событий. Под событием тут понимается не только клики, движения мыши и нажатия кнопок клавиатуры, но и срабатывания таймера, окончание загрузки ресурса (страницы, картинки, файла в файлридере...)
Параллельно работает цикл событий (event loop).

Из очереди берется очередное событие, если оно есть, и выполняются все его обработчики. (это фаза называется задача - task).Пока они выполняются, ничто не может это прервать. Все происходящие в этот момент события просто ставятся в конец очереди.

Когда все обработчики выполнены, начинается фаза микрозадач (microtask). В этой фазе выполняются все разрешенные к этому моменту promise, функции обратного вызова MutationObserver, и микрозадачи поставленные в очередь с помощью queueMicrotask.

Далее в браузере идет рендер страницы - Выполняются функции заданные requestAnimationFrame, потом пересчет стилей, если были изменения в DOM, и отрисовка страницы.

Затем из очереди событий берется очередное событие и все по новой.

Смысл этого, что ни одно событие не прерывает выполняющиеся функции. События ставятся в очередь, и их обработчики выполняются, когда очередь дойдет до них. Поэтому желательно не делать обработчики слишком длительными. Длительные задачи, требующие сложных вычислений лучше выносить в worker или разбивать их на более короткие части, уступая время обработке других событий.
2
0 / 0 / 0
Регистрация: 23.03.2024
Сообщений: 9
10.06.2024, 14:35  [ТС]
Огромное спасибо!
Теперь всё стало ясно. Этой проблемы нет, больше о ней не беспокоюсь.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
10.06.2024, 14:35
Помогаю со студенческими работами здесь

Как запретить скачивание файла но не запретить его исполнение.
Я составил сайт простенький. На нем у меня есть исполнительный файл в формате JAR ( Java - архив). Возникла необходимость запретить...

Питание ЮСБ -запретить отключение или запретить?
у меня вопрос- есть прибор -типа увеличительный микроскоп подключается по юсб, но иногда его перестает видеть программа и не идет...

Сателлит - временно
Добрый день! У меня есть домен. Через полгода планируется сделать на нем интернет-магазин. В данный момент времени на его создание...

Сервер временно недоступен
http://liveinternet.ru/click?httpliveinter...?rpt=ppc&shw=1' target='_blank'>http://wordstat.yandex.ru/advq?rpt=ppc&shw=1 собственно...

Временно остановить службы
Приветствую, наверно все сталкивались с тем что устанавливаемые программы запускают службы и почти во всех случаях они нужны только тогда,...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru