Ruby on Rails アプリでファイルをアップロードして処理したいと考えています。通常、ファイルのアップロードは非常に短いですが、サーバー側の処理には時間がかかる場合があります (20 秒以上) ので、意味のない「処理中...」画面よりも優れたインジケーターをユーザーに提供したいと考えています。
ビューで次のコードを使用しようとしています
<%= periodically_call_remote(:url => {:action => 'progress_monitor', :controller => 'files'},
:frequency => '5',
:update => "setProgress('progressBar','5')"
) %>
:update パラメータの内容は、5 秒ごとに実行したい JavaScript です
次のコードはファイルコントローラーにあります
def progress_monitor
render :text => 'whatever'
end
最終的に、progress_monitor メソッドは現在の進行状況を整数 (% 完了) として返し、それが「setProgress」JavaScript コードに渡されます (画面上の要素を更新します)。
ただし、JavaScript に渡すことができるサーバーから正しい応答を取得するのに苦労しています。
誰かが助けることができますか、それとも私はこれに間違った方法でアプローチしていますか?
これにはフォローアップの質問があります。最初にこの質問を更新しましたが、更新は新しい質問を保証するのに十分なほど異なっていました。