- - PR -
F5と戻るボタンを見分けるには
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-09-08 22:08
VS2005 VB.NETで開発しています。
Page_Load時にF5時のイベントか戻るボタンのイベントかを見分けたいのですが どうすればよいでしょうか? | ||||
|
投稿日時: 2006-09-08 22:31
Web アプリケーションですね?
「(ブラウザの)戻る」ではサーバーにリクエストが来ないので、そもそも「戻った」というのが分かりません。 _________________ 囚人のジレンマな日々 | ||||
|
投稿日時: 2006-09-08 22:33
何がしたくて、どうしたらいいと判断したので、この質問にいたったのでしょうか?
たぶん、「2重登録」あたりをキーに検索すると、答えは出てくると思う。 | ||||
|
投稿日時: 2006-09-08 22:44
説明が足りなくてすみません。
ご察しのとおり、Webアプリでの「2重登録」制御のためです。 | ||||
|
投稿日時: 2006-09-08 22:46
ほい
http://blogs.wankuma.com/jitta/archive/2005/11/18/19447.aspx | ||||
|
投稿日時: 2006-09-08 22:58
今は、セッションIDで再読み込みかを判断しているのですが
F5で再読み込みされたか戻るボタンで再読み込みされたかを 判断したいのですが・・・ | ||||
|
投稿日時: 2006-09-11 21:50
囚人さんのレスを、ちゃんと読まれましたか? 『「(ブラウザの)戻る」ではサーバーにリクエストが来ないので、そもそも「戻った」というのが分かりません。』 「戻る」ボタンをクリックした場合、ブラウザは、自身が持つキャッシュの内容を表示します。クライアントで操作が完了しています。 サーバにはたくさんのリクエストが送られてきます。それらのリクエストの履歴を持つことなんて、とてもじゃないが、出来ません。ですから、サーバでは「戻った」ことがわかりません。 おそらく、『「戻る」で戻った後にもう一度「登録」ボタンを押されたとき』だと思いますが、それならばそう、きちんと書いてください。 これは、回答者のためではなく、あなたがプログラムを書くためです。人間は、こういう曖昧なことを、経験などから類推して理解してくれますが、コンピュータにはそれは出来ません。自分がしたいことの手順を、コンピュータが理解できるところまで細かく砕いて、正しい順序に不足なく並べなければなりません。 で、本題。 本題だけど、脇道。考え方が足りません。実際にそのような操作をしたから、その対策を考えているのだと思います。では、もうひとつ考えられる状況を提示します。 登録画面を開きます。(仮に、画面1とします) 「ファイル」メニューの「新規ウインドウ」(あるいは [CTRL]+[N])により、登録画面のコピーを作ります。(仮に、画面2とします) 画面1と、画面2で、同じ内容を書き込みます。 画面1を登録します。 画面2を登録します。 さて、どの様な結果を望みますか? とりあえず、私が思いついているのはこの3パターン(リロード、戻って再登録、複製)なのですが、他のパターンがないとはいえません。それぞれのパターンについて、別々に対応するのでしょうか? ユーザの操作ではなく、「サーバに送られてくる内容」によって分類する方が、未知の操作パターンにも対応できると思うのですが、いかがでしょうか。 もし、ユーザ要望で「リロードと戻って再登録で、メッセージを分けろ」といわれているのなら、 「セキュリティ リスクを考えると、この2つは同じことであり、未知の操作パターンにも対応するために、同じものとして扱いたい」 と、説得してください。Windows アプリケーションのテクノロジと、Web アプリケーションのテクノロジは、まったく違います。Win. での考え方を Web に、そのまま持ってくることは出来ません。 なお、リロードは防げませんが、戻るはキャッシュ有効期限を短くすることで「戻れなくする」ことは出来ます。 |
1