Отображение прогресса выполнения длительной операции

Здравствуйте! Подскажите пожалуйста, необходимо отображать прогресс длительной операции. Вот пример: http://webix.com/snippet/402883af .
В данном примере создается окно, в котором два поля для отображения текущего прогресса выполнения. Затем создается модальное окно с вопросом о продолжении выполнения(это очень необходимо). В случае утвердительно ответа выполняется длительная операция в цикле. Я бы хотел в первом окне отображать в реальном времени процесс выполнения длительной операции. Окно с прогрессом отображается только после выполнения длительной операции. Видимо необходимо перерисовывать интерфейс. Но как это сделать не знаю… Подскажите пожалуйста, как это реализовать?

Здравствуйте, вы используете блокирующие циклы, которые соответвенно блокируют браузер, используйте аснихронные лупы, вроде этого:
http://webix.com/snippet/e640831e

Здравствуйте, BlackKopcap!!! Большое Вам спасибо за помощь!!! Думал о нечто похожем, надеялся что во фреймворке это как-то уже решено и скрыто. Большое спасибо!

надеялся что во фреймворке это как-то уже решено

К сожалению это невозможно реализовать без изменений в вашем коде.

На время выполнения длительной операции браузер полностью блокируют перерисовку, так что никакие изменения и анимации невозможно. Надо или разбивать операцию на асинхронные шаги, как показано выше или использовать web worker для запуска операции в паралельном потоке.

Максим, добрый вечер! Под своими словами я подразумевал, что возможно во фреймворке есть какой-нибудь виджет для длительных операций, одним из параметров которого является функция, в которой обрабатывается один шаг операции. А виджет в свою очередь перерисовывается и увеличивает значение текущего шага сам (например progressBar заполнялся бы по мере выполнения). И еще например на этом виджете была бы кнопочка “Cancel”, которая отменяла бы выполнение. Спасибо за внимание)

Готового решения к сожалению нет

UI с прогресом и кнопкой cancel сделать то легко, но сами асинхронные операции реализуются в разных приложениях по разному, и сложно сделать решение которое удовлетворит всех

Приветствую Вас! Спасибо за комментарий. Покапавшись в этой области пришел к такому же выводу! Еще раз спасибо!