|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
19.07.2015, 17:08 | #1 |
(aka Jin X) !RTFM!
Форумчанин
Регистрация: 14.12.2014
Сообщений: 295
|
doEvents
Хочу такую функцию
В общем, нужно реализовать длительный и ресурсоёмкий процесс (вернее, длительный цикл) вычисления на JavaScript, который можно было бы прервать. Процесс можно разбить на итерации, между которыми хорошо бы давать пользователю реагировать (например, нажать на кнопку "Стоп"). Можно, конечно, измудриться и делать через setTimeout(..., 0), но это не очень удобно... может, есть другой способ?
Делаю лабы на Asm/Delphi/C++/Python/VBA(Excel): asmlabs.ru
|
19.07.2015, 21:46 | #3 |
Высокая репутация
СуперМодератор
Регистрация: 27.07.2008
Сообщений: 15,554
|
Длительные циклы браузеры не любят, начнут ругаться. Лучше тогда через таймер, хотя скорость работы будет невысокой.
E-Mail: arigato.freelance@gmail.com
|
20.07.2015, 01:23 | #4 |
Участник клуба
Регистрация: 19.01.2009
Сообщений: 1,453
|
Бесконечный цикл с возможностью остановки и отложного выполнения ~= многопоточный цикл
Код:
|
20.07.2015, 09:26 | #5 |
Форумчанин
Регистрация: 26.04.2010
Сообщений: 450
|
Тишина – самый громкий звук
|
20.07.2015, 10:17 | #6 |
Старожил
Регистрация: 31.05.2010
Сообщений: 13,543
|
Вот-вот. Как-то пытался написать жавку со сменой катринки. Хром, пропустил. Опера сразу заорала - "опасный сайт". Пришлось убрать и сделать на PHP. Потерялась мобильность, но ничё - сойдёт.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder |
20.07.2015, 12:54 | #7 |
(aka Jin X) !RTFM!
Форумчанин
Регистрация: 14.12.2014
Сообщений: 295
|
uberchel, циклы должны выполняться последовательно, а тут не факт, что будет всегда последовательно... что-то мне подсказывает.
Я сделал через setTimeout в итоге. Везде работает нормально. Запускал в Chrome, Opera, FF, IE, Safari(Win), минут 10 прогонял, никто не ругался
Делаю лабы на Asm/Delphi/C++/Python/VBA(Excel): asmlabs.ru
|
20.07.2015, 13:54 | #8 |
Высокая репутация
СуперМодератор
Регистрация: 27.07.2008
Сообщений: 15,554
|
Через таймаут и не будут ругаться, разве что если внутри не зациклится. Вам, скорее всего, лучше подойдет setInterval() - если надо ни один раз запустить по таймеру, а постоянно.
E-Mail: arigato.freelance@gmail.com
|
20.07.2015, 14:48 | #9 |
Раздолбайских Дел
Старожил
Регистрация: 22.05.2009
Сообщений: 3,828
|
Когда асинхронная очередь дойдет до выполнения таймаута, пока не выполнится не отдаст никому бразды правления.
Скинули же уже решение через воркерсы. Тут либо через них делать, либо на сервер сбрасывать, либо проблема высосана из пальца.
Alar, верни репу!
|
20.07.2015, 22:14 | #10 |
(aka Jin X) !RTFM!
Форумчанин
Регистрация: 14.12.2014
Сообщений: 295
|
Прикольная штука - Web Worker...
Спасибо!
Делаю лабы на Asm/Delphi/C++/Python/VBA(Excel): asmlabs.ru
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Где поставить DoEvents | VistaSV30 | Microsoft Office Access | 2 | 26.08.2010 13:25 |
перестыл работать DoEvents | ytzm2hsD3X0HVxwl | Microsoft Office Excel | 4 | 03.12.2009 07:03 |