powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Отработка событий при длительном цикле
9 сообщений из 9, страница 1 из 1
Отработка событий при длительном цикле
    #39036865
janco
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть некоторая функция, обрабатывающая в цикле большой объем данных. Это длится несколько секунд-десятков секунд. Проблема с пользовательским интерфейсом браузера. На это время мне надо отобразить gif-анимацию индикатор прогресса. Картинка появляется, но дальше браузер "виснет" не меняя фреймы картинки, ни на что не реагирует. Есть ли способ сделать его более "отзывчивым" на время выполнения этой функции? Что-то наподобие DoEvents из VBA? Без воркеров не обойтись никак?
...
Рейтинг: 0 / 0
Отработка событий при длительном цикле
    #39036874
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
janco,

сделайте ajax запрос, пока не получен ответ или таймаут не случится - рисуйте на экране что угодно
...
Рейтинг: 0 / 0
Отработка событий при длительном цикле
    #39037160
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jancoЕсть ли способ сделать его более "отзывчивым" на время выполнения этой функции?
Да, есть.
http://javascript.ru/blog/Andrej-Paranichev/Osnovy-programmnoj-animacii-JavaScript
...
Рейтинг: 0 / 0
Отработка событий при длительном цикле
    #39037752
janco
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Изопропилjanco,

сделайте ajax запрос, пока не получен ответ или таймаут не случится - рисуйте на экране что угодно
Куда и какой? Функция выполняется на стороне клиента в браузере.
krvsa, спасибо, но это не совсем то о чем я спрашиваю. Там описываются принципы построения анимации. У меня она есть в виде gif-картинки с меняющимися кадрами. Просто из-за зависания браузера эта картинка "мертвая" во время выполнения функции. По всей видимости надо функцию переписать с таймаутами, но счётчики цикла полетят. Тогда надо уже и замыкания реализовать - т.е. очень много переделывать. Думал есть вариант проще. Тогда пусть лучше висит..
...
Рейтинг: 0 / 0
Отработка событий при длительном цикле
    #39037762
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
janco,
Вы правы, Вам для этого нужно будет делать javascript'овский метод асинхронным, используя setInterval, setTimeout или requestAnimationFrame.
...
Рейтинг: 0 / 0
Отработка событий при длительном цикле
    #39037833
Gustly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зачем интервалы? Вешать лисенер на аякс. Как завершится, убирать гифку, перед запуском запускать гифку.
...
Рейтинг: 0 / 0
Отработка событий при длительном цикле
    #39037846
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GustlyЗачем интервалы? Вешать лисенер на аякс. Как завершится, убирать гифку, перед запуском запускать гифку.
у пациента длительные расчёты в броузере

jancoПо всей видимости надо функцию переписать с таймаутами, но счётчики цикла полетят.
да, переписать
счётчики никуда не полетят, если их аккуратно передавать через замыкание
...
Рейтинг: 0 / 0
Отработка событий при длительном цикле
    #39038026
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jancoспасибо, но это не совсем то о чем я спрашиваю. Там описываются принципы построения анимации. У меня она есть в виде gif-картинки с меняющимися кадрами. Просто из-за зависания браузера эта картинка "мертвая" во время выполнения функции.
Принцип там один и тот же...
...
Рейтинг: 0 / 0
Отработка событий при длительном цикле
    #39039212
yelena
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Отработка событий при длительном цикле
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]