- - PR -
最新の情報に更新を、はじく方法
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2009-03-30 19:42
最近、よく利用させて頂いてます
F5キーを、はじくことは出来たのですが、 表示→最新の情報に更新を、はじくことができません つまり、現在のページのリロードをさせなくしたいのです よろしくお願いします |
|
投稿日時: 2009-03-30 21:32
できません。
すでにできあがっている製品であるブラウザーの挙動を変えることはできません。 F5 キーを、本当にはじけていますか?JavaScript が動かない環境だったら、どうします? [表示]→[最新の情報に更新]だけでなく、IE8 ならリロード ボタンがアドレスバーのところにありますよ。アドレスバーにフォーカスして、[Enter]でもリロードになりますよ。そのページをブックマークして、ブックマークから選んでも、リロードになりますよ。その他、[Ctrl]キーを使用したキーボード ショートカットが2つありますよ。 |
|
投稿日時: 2009-03-30 21:41
回答じゃなくてすみません。
それが出来たとして次は 画面を右クリックして「最新の情報に更新」を選んだ時の対処方法でしょうか。 それが出来たとして次は アドレスバーに「javascript:document.location.reload();」と入れて エンターキーを押したときの対処方法でしょうか。 それが出来たとして・・・ 参考までに何の為にこのような事をやろうとしているのか教えていただけるでしょうか。 |
|
投稿日時: 2009-03-30 21:57
まずは、他の方も投稿しているように、
完璧に防御するのは不可能です。 それを前提として、、 メニューから選んだイベントに対しては 回避策はありません。 そのリクエストは飛んでしまうからです。 後は、IEのみですが、 onbeforeunload イベントで、returnValueプロパティにメッセージを 設定することで、OK・キャンセルのダイアログを表示することはできます。 #これでも、OKを押して続行してしまうと動いちゃいますが。 例: event.returnValue = "リロードはできません。キャンセルボタンを押下してください。"; ⇒ リロードをしたタイミングでダイアログが出る。キャンセルを押すと サーバにリクエストは飛ばず、リロードがキャンセルされる。 |
|
投稿日時: 2009-03-30 23:40
みなさんおっしゃってるようにクライアント側の挙動を変えることはできません。
でもサーバー側のロジックはあなたが作っているのでどんなレスポンスを返すかは自由です。 どんな場合に正常のレスポンスを返すべきで、どんな場合にはじきたいのか定義できればいいんだと思います。 たとえば他のブラウザウインドウを立ち上げて同じURLにアクセスした場合ははじくべきでしょうか。 はじかないんだとすれば、[最新の情報に更新]と上記は何が違うのか。 はじくんだとすれば初回にアクセスした場合と上記は何が違うのか。 |
|
投稿日時: 2009-03-31 01:08
画面遷移の基本をPost Redirect Get方式にするとかですかね。
リロード自体を防ぐのではなく、 リロードされても問題のないシステムを作るようにしましょう。 WEBアプリはブラウザで動くアプリに思われがちですが、 単なるHTTP通信の連続です。 ブラウザに関係なく、どんなメッセージが送られても、 安全に処理ができる仕組みにする必要があります。 |
|
投稿日時: 2009-04-02 00:35
ご教授ありがとうございます
リロードに耐えうるプログラムコードにします ありがとうございました |
1