Я хочу загрузить, а затем обработать файл в приложении Ruby on Rails. Загрузка файла обычно довольно короткая, но обработка на стороне сервера может занять некоторое время (более 20 секунд), поэтому я хочу дать пользователю некоторый индикатор - что-то лучше, чем бессмысленный экран «обработки ...».
Я пытаюсь использовать следующий код в представлении
<%= periodically_call_remote(:url => {:action => 'progress_monitor', :controller => 'files'},
:frequency => '5',
:update => "setProgress('progressBar','5')"
) %>
Содержимое параметра: update - это JavaScript, который я хочу запускать каждые 5 секунд
и следующий код находится в контроллере файлов
def progress_monitor
render :text => 'whatever'
end
В конце концов, метод progress_monitor вернет текущий прогресс в виде целого числа (% выполнено), который будет передан в код JavaScript 'setProgress' (который обновит элемент на экране)
Однако я изо всех сил пытаюсь получить правильный ответ от сервера, который затем может быть передан в JavaScript.
Может кто-нибудь помочь, или я подхожу к этому неправильно?
Существует дополнительный вопрос к этому, я первоначально обновил этот вопрос, но обновление было достаточно другим, чтобы оправдать новый вопрос, здесь .