前のページに戻り、自動的にリフレッシュする方法
2632 ワード
JavaがWEBプログラムを作成する場合、ページは表示される部分だけであるべきであり、Javaスクリプトコードを一切含まないべきであるため、主にJSを用いてこの機能を実現することを考慮している.前のページに戻ることはよくありますが、ページ上のステータスに関する情報をリフレッシュして、重複操作、エラー情報の弊害を避ける必要があります.まず2つの方法を説明します.
1.ページをキャッシュしないように設定し、前回のページにアクセスするにはサーバに再アクセスして取得する必要があります.(試したことがありません).
HTML
JAVA
if (request.getProtocol().compareTo("HTTP/1.0") == 0){ response.setHeader("Pragma","no-cache"); }else if (request.getProtocol().compareTo("HTTP/1.1") == 0){ response.setHeader("Cache-Control","no-cache"); }
PHP
header("Cache-Control: no-store, no-cache, must-revalidate"); header("Cache-Control: post-check=0, pre-check=0", false); header("Pragma: no-cache");
ASP
Response.Buffer = True Response.ExpiresAbsolute = Now() - 1 Response.Expires = 0 Response.CacheControl = "no-cache"Response.AddHeader "Pragma", "No-Cache"
2.ページは自動的に再ロードされ、ページの最初の実行時に再ロードが実行されます.
この方法は少し複雑で、HTTPは状態がなく、一度ページを要求した後に次の要求には必然的な関係はありません.もちろんSeesionでいいです.このようにサーバーに大きなプレッシャーをかけて、もう一つの状態を取得する方法はCookieです.最初にページを開くときに、Cookieに1つの値を保存して初めてであることを示し、ページを再ロードした後、Cookie値が初めてであるかどうかを検出し、最初でない状態にする.簡単な実現は以下の通りです.
var strcookie = document.cookie; var arrcookie = strcookie.spit("=") var statuscookie = arrcookie[1]; if(statuscookie == ""|| statuscookie == "0"){//retset flag document.cookie="statuscookie=1"; }else{ window.location.reload(); document.cookie="statuscookie=0"; }
前のページに戻るだけで、更新する必要がない場合は、JSには多くの書き方があります.
window.history.go(-1) window.history.back() window.history.back(-1)
リフレッシュが必要な場合は、次の2つの方法があります.
1つ目は、戻ってからページを再要求することです.
window.history.go(-1); window.history.go(0)//winoow.loaction=window.location
第二に、HTTPヘッダ情報を利用する
window.location.href=document.referrer
HTTPの頭の中のHTTPを通してREFERERレコードのリンク元アドレスはジャンプを実現し、ソースアドレスはこのページがどのページからリンクされたページを指す.HTTP Refererはヘッダの一部であり、ブラウザがウェブサーバにリクエストを送信すると、通常はRefererを持ってきて、どのページからリンクしたのかをサーバに伝え、サーバ籍は処理にいくつかの情報を得ることができます.例えば、私のホームページから友人にリンクすると、彼のサーバーはHTTP Referから毎日どれだけのユーザーが私のホームページのリンクをクリックして彼のサイトにアクセスしているかを統計することができます.これにより、アクセス元が簡単に入手できます.JSP、ASP、PHPはすべて副情報の方法にアクセスすることを提供して、もしページの中でこれらのスクリプトの言語を含むならば、同じく使うことができて、私はやはりそれらを使うことはできません.
これはブラウザのリフレッシュメカニズムに関係しています.ブラウザはLast-modifiedとExpiresでキャッシュを処理しています.興味があれば参考にしてください.http://blog.sina.com.cn/s/blog_6868b78d0100kgwp.html
1.ページをキャッシュしないように設定し、前回のページにアクセスするにはサーバに再アクセスして取得する必要があります.(試したことがありません).
HTML
JAVA
if (request.getProtocol().compareTo("HTTP/1.0") == 0){ response.setHeader("Pragma","no-cache"); }else if (request.getProtocol().compareTo("HTTP/1.1") == 0){ response.setHeader("Cache-Control","no-cache"); }
PHP
header("Cache-Control: no-store, no-cache, must-revalidate"); header("Cache-Control: post-check=0, pre-check=0", false); header("Pragma: no-cache");
ASP
Response.Buffer = True Response.ExpiresAbsolute = Now() - 1 Response.Expires = 0 Response.CacheControl = "no-cache"Response.AddHeader "Pragma", "No-Cache"
2.ページは自動的に再ロードされ、ページの最初の実行時に再ロードが実行されます.
この方法は少し複雑で、HTTPは状態がなく、一度ページを要求した後に次の要求には必然的な関係はありません.もちろんSeesionでいいです.このようにサーバーに大きなプレッシャーをかけて、もう一つの状態を取得する方法はCookieです.最初にページを開くときに、Cookieに1つの値を保存して初めてであることを示し、ページを再ロードした後、Cookie値が初めてであるかどうかを検出し、最初でない状態にする.簡単な実現は以下の通りです.
var strcookie = document.cookie; var arrcookie = strcookie.spit("=") var statuscookie = arrcookie[1]; if(statuscookie == ""|| statuscookie == "0"){//retset flag document.cookie="statuscookie=1"; }else{ window.location.reload(); document.cookie="statuscookie=0"; }
前のページに戻るだけで、更新する必要がない場合は、JSには多くの書き方があります.
window.history.go(-1) window.history.back() window.history.back(-1)
リフレッシュが必要な場合は、次の2つの方法があります.
1つ目は、戻ってからページを再要求することです.
window.history.go(-1); window.history.go(0)//winoow.loaction=window.location
第二に、HTTPヘッダ情報を利用する
window.location.href=document.referrer
HTTPの頭の中のHTTPを通してREFERERレコードのリンク元アドレスはジャンプを実現し、ソースアドレスはこのページがどのページからリンクされたページを指す.HTTP Refererはヘッダの一部であり、ブラウザがウェブサーバにリクエストを送信すると、通常はRefererを持ってきて、どのページからリンクしたのかをサーバに伝え、サーバ籍は処理にいくつかの情報を得ることができます.例えば、私のホームページから友人にリンクすると、彼のサーバーはHTTP Referから毎日どれだけのユーザーが私のホームページのリンクをクリックして彼のサイトにアクセスしているかを統計することができます.これにより、アクセス元が簡単に入手できます.JSP、ASP、PHPはすべて副情報の方法にアクセスすることを提供して、もしページの中でこれらのスクリプトの言語を含むならば、同じく使うことができて、私はやはりそれらを使うことはできません.
これはブラウザのリフレッシュメカニズムに関係しています.ブラウザはLast-modifiedとExpiresでキャッシュを処理しています.興味があれば参考にしてください.http://blog.sina.com.cn/s/blog_6868b78d0100kgwp.html