ページの部分を定期的に更新

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を指定する。