odeの開発メモ日記

プログラマーやってます。今までの道のり ポケコンbasic→C(DirectX5 ネットやろうぜ)→Perl(ちょろっと)→Java→C#→Ruby→Android(Java)

セッションの自動延長

前書き

セッションはご存知のとおりリクエストがないと一定時間で消えてしまいます。
けどページによってはタイムアウトの時間をとても長くしたい場合があります。


例えばお絵かきツールで大作を描いたり。。メール文面入力ページで緻密に計算されたラブレターを書いていたり。。などなど。(消えちゃったら発狂しますね)


なのでそのページだけはタイムアウトをなくしたいです。


やり方

ajaxで定期的に裏でリクエストを発行すれOKです。
リクエストのたびにセッションの有効期限が延長されます。

util_controller.rb
class UtilController < ApplicationController
  def extend_session_expire
    # 特になにもしない。
    render :text=>"ok"
  end
end


自動延長したいview

<%--  javaスクのライブラリロード --%>
<%= javascript_include_tag :defaults %>


<%--  特定のurlを定期的にたたくコード。この場合10分間隔。 --%>
<%= periodically_call_remote :url=>{:controller=>"/util", :action=>"extend_session_expire"}, :frequency => 10.minute %>