Приложение Ruby / Sinatra - отображает результаты цикла на экране во время процессов цикла - PullRequest
0 голосов
/ 11 марта 2012

Есть ли какие-нибудь хорошие гемы / шаблоны для рендеринга результатов цикла в приложении Ruby / Sinatra во время обработки цикла?В данный момент мой цикл может занять 1-2 минуты, чтобы завершить обработку, и в идеале я бы хотел выводить результаты в режиме реального времени, а не заставлять пользователя ждать 1-2 минуты.

1 Ответ

2 голосов
/ 11 марта 2012

Что вы можете сделать, когда вы получите запрос в первый раз, вы можете запустить процесс в другом потоке и вернуть запрос с «флагом начала процесса».

Теперь этот поток выполняет цикл и сохраняет промежуточные результаты в базе данных (может быть во временной таблице).

В то же время ваше представление (я полагаю, JavaScript) начнет выполнять запросы Ajax к этой временной таблице, которые будут давать промежуточные результаты во время работы цикла.

Как только процесс завершится, ajax вернёт 'финиш' и запросы могут остановиться. При этом поток может удалить таблицу и быть остановленным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...