- PR -

セッション継続について

1
投稿者投稿内容
ゆいな
ベテラン
会議室デビュー日: 2006/01/19
投稿数: 89
投稿日時: 2007-02-09 12:06
お世話になります。

ブラウザとWebサーバ間のセッションをずっと継続させたい
という要件があり、
「Webサーバへ定期的にリクエストを
 送り続けるようなものを0%のフレーム内に仕込む」
で要件を満たそうと考えました。
が、フレームが対応されていないブラウザでは、それが
実現できませんので、他によい方法がないかを検討しております。

アイディア等ございましたら、ご教示ください。




じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2007-02-09 12:25
「セッション ハートビート」 で検索すると末吉。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
すみょし
常連さん
会議室デビュー日: 2007/01/25
投稿数: 36
投稿日時: 2007-02-09 12:29
こんにちわ

セッションハートビートをAjaxで実現するのはどうでしょ。
(やったことないけど)
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 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 ]
かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2007-02-09 13:40
フレームに対応していないブラウザがAjaxに対応しているかは微妙ですね。
クッキーにキーを忍ばせて、キーがあれば認証自動化という手段もあります。

ちなみにセッションで維持したい情報って何でしょうか。
unibon
ぬし
会議室デビュー日: 2002/08/22
投稿数: 1532
お住まい・勤務地: 美人谷        良回答(20pt)
投稿日時: 2007-02-10 12:55
定番としては、フレーム(FRAME)か、画像(IMG)か、別ウィンドウ(window.open)か、はたまた、コントロール(Java Applet/ActiveX Control など)か、になります。
実用になるのは、別ウィンドウでしょう。巷のサイトを巡っていてもよく見かけるやりかたであり実績はあるようです。個人的な好みとしても、フレームや画像やコントロールでこっそりやられるよりは、別ウィンドウでやられるほうが隠しごとがなくて好きです。

もっとも、フレームがダメなのに、別ウィンドウが許されることはあまりないでしょう。

--
unibon {B73D0144-CD2A-11DA-8E06-0050DA15BC86}
1

スキルアップ/キャリアアップ(JOB@IT)