2010-01-28 71 views
0

我有一個按鈕StartMonitor,用戶按下此按鈕後,我將開始每5分鐘檢查一次當前可用內存。這意味着視圖應該每5分鐘更新一次以顯示到目前爲止獲得的所有數據。我可以獲取數據,但我不知道如何更新視圖。你會推薦什麼?謝謝。如何在rails中每五分鐘更新一次視圖

回答

2

您必須從客戶端主動調查此問題。視圖渲染後,與客戶端的連接丟失。您不能從服務器端將信息推送到瀏覽器。

使用JavaScript或帶有「重新加載」的元標記每5分鐘重新加載視圖。例如

<meta http-equiv="refresh" content="300;url=/controller/action/id"> 

如果重新加載整個頁面(通過JS或元標記),並重新加載不成功(如服務器忙錯誤)不再執行你的重裝代碼,因爲現在的瀏覽器顯示一個錯誤頁面不包含您的重載代碼。例如

我建議,使用AJAX更新div並自己處理錯誤事件(忽略它,重試,通知用戶,任何符合您的需求的信息)。這應該是一個解決方案。

periodically_call_remote(:url => 'update', :frequency => '300', :update => { :success => "ok", :failure => "error" } 
0

你確實有這樣

一個的幾種方法是什麼phisch「建議

,另一個將使用Ajax更新(你可以做到這一點使用Rails默認Ajax庫)

代碼的例子是,

'message_div',:URL => {:動作> '消息'},:頻率=> '20' %>

其中「message_div」是更新的div 行動 - >是控制器動作 和頻率以秒爲單位的更新頻率

  • 注 - 多包括軌道默認JavaScript庫

希望這有助於

歡呼聲, sameera