- - PR -
セッション継続について
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2007-02-09 12:06
お世話になります。
ブラウザとWebサーバ間のセッションをずっと継続させたい という要件があり、 「Webサーバへ定期的にリクエストを 送り続けるようなものを0%のフレーム内に仕込む」 で要件を満たそうと考えました。 が、フレームが対応されていないブラウザでは、それが 実現できませんので、他によい方法がないかを検討しております。 アイディア等ございましたら、ご教示ください。 |
|
投稿日時: 2007-02-09 12:25
「セッション ハートビート」 で検索すると末吉。
_________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 |
|
投稿日時: 2007-02-09 12:29
こんにちわ
セッションハートビートをAjaxで実現するのはどうでしょ。 (やったことないけど) |
|
投稿日時: 2007-02-09 12:29
継続的に覚えて貰いたい情報はそもそも HttpSession ではなくデータベースなどの永続ストアに保管しておくべきです。Amazon のショッピングカートなんかそんな仕組みになっていますね。
フレームが使えなくても JavaScript の setTimeout() と XMLHttpRequest を組み合わせて定期的にリクエストを投げることはできますね。 ただ、HttpSession がタイムアウトしないとメモリリークしていずれ OutOfMemoryError に陥ってしまいます。 WebLogicなんかだと HttpSession をメモリではなくファイルやデータベースに永続化する仕組みがありますがパフォーマンスが非常に悪くなります。 http://edocs.beasys.co.jp/e-docs/wls/docs92/webapp/weblogic_xml.html#wp1061715 24時間とか、十分長い時間に設定することで我慢してもらうか、その要件自体断るのが良いでしょう。 どうしてもということであれば HttpSession は利用せず、キーを元にファイルに情報を永続化するような仕組みにするとかいうソリューションもありますが、パフォーマンスを大きく犠牲にするのでオススメしません。 [ メッセージ編集済み 編集者: インギ 編集日時 2007-02-09 12:31 ] |
|
投稿日時: 2007-02-09 13:40
フレームに対応していないブラウザがAjaxに対応しているかは微妙ですね。
クッキーにキーを忍ばせて、キーがあれば認証自動化という手段もあります。 ちなみにセッションで維持したい情報って何でしょうか。 |
|
投稿日時: 2007-02-10 12:55
定番としては、フレーム(FRAME)か、画像(IMG)か、別ウィンドウ(window.open)か、はたまた、コントロール(Java Applet/ActiveX Control など)か、になります。
実用になるのは、別ウィンドウでしょう。巷のサイトを巡っていてもよく見かけるやりかたであり実績はあるようです。個人的な好みとしても、フレームや画像やコントロールでこっそりやられるよりは、別ウィンドウでやられるほうが隠しごとがなくて好きです。 もっとも、フレームがダメなのに、別ウィンドウが許されることはあまりないでしょう。 -- unibon {B73D0144-CD2A-11DA-8E06-0050DA15BC86} |
1