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

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

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

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


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