Je souhaite télécharger puis traiter un fichier dans une application Ruby on Rails. Le téléchargement du fichier est généralement assez court, mais le traitement côté serveur peut prendre un certain temps (plus de 20 secondes), donc je veux donner à l'utilisateur un indicateur - quelque chose de mieux qu'un écran 'traitement ...' sans signification.Mise à jour de la progression côté serveur sur l'application Rails
J'essaie d'utiliser le code suivant dans la vue
<%= periodically_call_remote(:url => {:action => 'progress_monitor', :controller => 'files'},
:frequency => '5',
:update => "setProgress('progressBar','5')"
) %>
Le contenu du: paramètre de mise à jour est le javascript que je veux courir toutes les 5 secondes
et le code suivant est en le contrôleur de fichiers
def progress_monitor
render :text => 'whatever'
end
Finalement, le procédé de progress_monitor retourne l'état d'avancement sous forme d'entier (% effectués) et qui est passé dans le « setProgress » code javascript (qui mettra à jour un élément à l'écran)
Cependant, je n'arrive pas à obtenir une réponse correcte du serveur qui peut ensuite être passée en javascript.
Est-ce que quelqu'un peut aider, ou est-ce que je m'approche de ce mauvais chemin?
Il y a une question de suivi à ceci, j'ai initialement mis à jour cette question mais la mise à jour était suffisamment différente pour justifier une nouvelle question, here.