我有一个按钮StartMonitor
,用户按下此按钮后,我将每隔5分钟开始检查当前可用内存。这意味着视图应每5分钟更新一次,以显示 到目前为止所有数据 。我可以获取数据,但我不知道如何更新视图。你会推荐什么?谢谢。
答案 0 :(得分:2)
您必须从客户端主动轮询此内容。呈现视图后,与客户端的连接将丢失。从服务器端,您不能将信息推送到浏览器。
使用JavaScript或带有“重新加载”的元标记每5分钟重新加载一次视图。例如
<meta http-equiv="refresh" content="300;url=/controller/action/id">
如果您重新加载整个页面(通过JS或Meta-Tag)并且重新加载不成功(例如服务器忙碌错误),您的重新加载代码将不再执行,因为浏览器现在显示错误页面不包含您的重新加载代码。例如
我建议,使用AJAX更新div并自己处理错误事件(忽略它,重试,告知用户。无论你需要什么)。这应该是一个解决方案。
periodically_call_remote(:url => 'update', :frequency => '300', :update => { :success => "ok", :failure => "error" }
答案 1 :(得分:0)
你实际上有几种方法可以做到这一点
一个是'phisch'的建议
另一个将使用Ajax更新(你可以使用rails默认ajax库来实现)
代码示例将是,
'message_div',:url =&gt; {:action =&gt; 'message'},:frequency =&gt; '20' %GT;其中'message_div'是更新div 行动 - &gt;是控制器动作 和频率是以秒为单位的更新频率
希望这会有所帮助
欢呼声, sameera