2010-09-13 96 views
0

所以我有一個相當長的控制器函數來執行各種任務,大約需要10-15秒。我希望能夠隨着功能的進展更新用戶的狀態(進度條)。理想情況下,該函數被稱爲Ajax請求,並隨後更新頁面。這將工作,除非您只能每次操作更新一次頁面。有任何想法嗎?謝謝。Ruby on Rails:在控制器中多次更新頁面

這就是我想要的代碼做:

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 

回答

3

也許是這樣的:觸發後臺任務,並給它返回一個ID。後臺任務可以將消息寫入標有該標識的數據庫,並且您可以執行另一個操作,讓您爲消息提供long-poll,從而更新用戶。最後的消息將成爲答案。