- - PR -
さんざん既出の「戻る」ボタンの制御について
1|2|3
次のページへ»
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2005-07-12 10:51
いつも参考にさせていただいております。
現在、ASP.NETとC#にてWebアプリを開発中です。 過去ログも拝見しましたが、ここでも再三取り上げられているIEの「戻る」ボタン の制御についてアドバイスをいただけたらと思っております。 私のところでもこの辺は運用でカバーしてもらうということで、 画面上に「戻るボタンの使用は禁止」等のラベルを目立つように貼り付けていたのですが、 それでも使用してしまった人がおり、しかも更新系の処理を行いデータに不整合が出てしまうということが発生しました。 もちろん、その場合でも不整合が起こらないような作りにしておくことが大前提なのでしょうが、 お客様が使用している市販のパッケージのWebアプリでは、戻るボタンをクリックすると、 メッセージボックスが出て強制的にログイン画面に戻るそうで、同じような処理はできないものかと言われております。 過去ログを拝見している限りでは、そのような処理は無理なように思われますが、 このような事は可能なのでしょうか? これらの動きはクライアントサイドでの処理なのですよね?(JavaScript等) 過去ログにあった http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=6531&forum=7 SessionとViewStateの両方にカウンタを保持してポストバック毎にインクリメントし、 双方の値が一致するかどうかをチェックする方法とは、サーバーサイドでのチェックだと思うのですが、 この辺についてもう少し詳しくわかる方がいればアドバイスいただきたいです。 結局、なんらかの方法で戻るボタン等、キャッシュが使用された画面遷移時には 更新系が行えないようになればよいだけだと思います。 metaタグも組み込みましたが、完全ではありません。 多少見苦しくてもかまわないので、何か逃げる方法はありませんでしょうか? 長くなりましたが、何卒、宜しくお願いいたします。 |
|
投稿日時: 2005-07-12 10:58
おはようございます、餅宮です。
前のページのURL確認するだけじゃだめですかね? 処理の流れでは、ダメかもしれませんが。 |
|
投稿日時: 2005-07-12 10:59
1つの案
Sessionに直前のページ名を記憶しておくとか。 _________________ たつごろー codeseek こみゅぷらす |
|
投稿日時: 2005-07-12 11:12
餅宮さん、たつごろーさん、早速のご回答ありがとうございます!
餅宮さん >前のページのURL確認するだけじゃだめですかね? これは、クライアントサイドで確認するのでしょうか? OnLoadイベントか何かでしょうか? たつごろーさん >Sessionに直前のページ名を記憶しておくとか。 これはサーバーサイドでの処理でしょうか? 戻るボタンクリック時は、サーバーには処理は行かないと思うのですが・・・。 お手数でなければ、具体的にはどのようにチェックするのか 教えていただけないでしょうか? 度々ですが、宜しくお願いいたします。 |
|
投稿日時: 2005-07-12 11:16
これは試してないです
キャッシュをやめられないかためす Scriptで強制的にPostBackさせる _________________ たつごろー codeseek こみゅぷらす |
|
投稿日時: 2005-07-12 11:19
汚いやり方でも良くて、クライアントサイドでどうしても・・・・って事なら
フレームを100%と*で作成して、JavaScriptを使用して別ページにリロード毎にカウントアップするSession変数を書き込む で、書き込もうとする変数と、既に有る物を比較して減ってたら JavaScriptでTOPに飛ばしちゃえば問題ないかと |
|
投稿日時: 2005-07-12 11:24
CookieとJavascriptで実現してはどうでしょうか?
A->B->Cと遷移をする場合に 遷移元ページIDを遷移先ページでクッキーに格納。 ページロード時にはJAVASCRIPTにて現在ページと遷移元ページを比較 _________________ ASP/ASP.NETだいすき。 ASP++ by Moo http://moo-asp.net/ 日記は ほぼ毎日更新中 http://d.hatena.ne.jp/aspx/ |
|
投稿日時: 2005-07-12 11:30
キャッシュ対策なんですけど、
1.始めのページに空のhiddenを用意して、hiddenが空の時だけ表示されるようにします。 2.次のページに移動するときに、そのhiddenに何か適当な値を入れます。 3.次のページで戻るボタンを押したとき、前のページがキャッシュで表示された場合は、 hiddenの値も残っているので、1.の状態と区別できます。 というのはどうでしょうか。 以前作ったとき、IEなら動いてました。 |
1|2|3
次のページへ»