ページの部分を定期的に更新
rails上のAjax用ヘルパーを使って周期的にページを部分的の更新するのを試してみる。
アクション
これは、基本は通常のページと同じようにアクションメソッドを実装。
周期的に更新される部分の内容を表示するためのVIEWを作る
これも、通常のViewと同じようにHTMLタグを含むVIEWを作成する。
<div class="nav" > .. 省略 .. </div>
更新される部分を含むVIEWへのJavascript挿入用コード作成。
periodically_call_remoteヘルパーメソッド(ActionControllerにMixinされているActionView::Helpers::JavaScriptHelperモジュール)を使用して,非同期通信を行うためのJavascriptが挿入されるようにする。
挿入される部分にコンテンツが含まれる場合は、非同期通信の結果置き換えられることになる。
<div class="nav" id="recent"> <%= periodically_call_remote ( :update => 'recent', :frequency => 30, :url => { :controller => 'common/recent', :action => 'self_list' } ) %> <div class="nav" > .. このdivタグは、ページが表示されるときからある部分、非同期通信が発生すると置きかえられる。 .. </div> .. 省略 </div>
periodically_call_remoteメソッドの各胃オプションは以下のとおり。
-
- updateオプションには、更新される対象となるタグのIDを指定する。上の例では、'recent'というidをもつdiv内を更新するような指定となっている。
- frequenctオプションには、更新頻度を秒単位で指定。
- urlオプションには、アクションへのurlを指定する。