2010-09-13 6 views
0

J'ai donc une fonction de contrôleur assez longue qui effectue diverses tâches, et cela prend environ 10-15 secondes. Je veux pouvoir mettre à jour l'utilisateur sur l'état de la fonction au fur et à mesure (barre de progression). Idéalement, la fonction est appelée comme une requête Ajax, et mettrait alors à jour la page au fur et à mesure. Cela fonctionnerait, sauf que vous ne pouvez mettre à jour la page qu'une seule fois par action. Des idées? Je vous remercie.Ruby on Rails: Mise à jour de la page plusieurs fois dans le contrôleur

C'est ce que je veux faire dans le code:

def long_function 
updatePage "Starting long_function" 
#some code which take 5 seconds" 
updatePage "Finished with first part" 
#some more code which takes a while 
updatePage "Finished second part" 
#last code part 
updatePage "Finished!" 
end 

Répondre

3

peut-être quelque chose comme ceci: déclencher une tâche de fond et de lui donner un identifiant que vous revenez. La tâche d'arrière-plan peut écrire des messages dans la base de données étiquetée avec cet ID et vous pouvez avoir une autre action qui vous permet long-poll pour les messages et ainsi mettre à jour l'utilisateur. Le dernier message sera alors la réponse.

Questions connexes