1. 程式人生 > >如何實現返回上一頁並自動重新整理

如何實現返回上一頁並自動重新整理

Java編寫WEB程式時,頁面應該只是表示的部分,不應該含有任何Java指令碼程式碼,所以主要考慮使用JS來實現這一功能。我們經常會碰到返回上一頁,但是需要重新整理頁面上與狀態相關的資訊,從而避免重複操作,錯誤資訊的弊端。先說兩種方法:

1. 設定頁面為不快取,訪問上一次頁面就需要重新去伺服器獲取。(我沒有試過)。

HTML

  1. <pre>
  2. <METAHTTP-EQUIV="pragma"CONTENT="no-cache">
  3. <METAHTTP-EQUIV="Cache-Control"CONTENT="no-cache, must-revalidate"
    >
  4. <METAHTTP-EQUIV="expires"CONTENT="0">
  5. </pre>

JAVA

  1. if (request.getProtocol().compareTo("HTTP/1.0") == 0){  
  2.     response.setHeader("Pragma","no-cache");  
  3. }elseif (request.getProtocol().compareTo("HTTP/1.1") == 0){  
  4.     response.setHeader("Cache-Control","no-cache");  
  5. }  

PHP

  1. header(
    "Cache-Control: no-store, no-cache, must-revalidate");  
  2. header("Cache-Control: post-check=0, pre-check=0", false);  
  3. header("Pragma: no-cache");  

ASP

  1. Response.Buffer = True   
  2. Response.ExpiresAbsolute = Now() - 1   
  3. Response.Expires = 0   
  4. Response.CacheControl = "no-cache"
  5. Response.AddHeader "Pragma"
    "No-Cache"

2. 頁面自動過載,在頁面第一次執行時執行一次過載。

此方法稍微有點複雜,HTTP是沒有狀態的,請求一次頁面後下次請求沒有什麼必然的關係,當然用Seesion可以,這樣子給伺服器很大的壓力,還有一種獲取狀態的方法就是Cookie。在第一次開啟一個頁面時,讓Cookie存一個值表示這是第一次,然後過載頁面後,檢測Cookie值是否是第一次,若是則置為非第一次狀態。一個簡單的實現如下。

[javascript] view plain copy
  1. var strcookie = document.cookie;  
  2. var arrcookie = strcookie.spit("=")  
  3. var statuscookie = arrcookie[1];  
  4. if(statuscookie == "" || statuscookie == "0"){  
  5.     //retset flag
  6.     document.cookie="statuscookie=1";  
  7. }else{  
  8.     window.location.reload();  
  9.     document.cookie="statuscookie=0";  
  10. }  

如果僅僅是返回上頁,不需要重新整理,JS可以有很多種寫法:

[javascript] view plain copy
  1. window.history.go(-1)  
  2. window.history.back()  
  3. window.history.back(-1)  

如果需要重新整理,可以有兩種寫法:

第一種,返回後重新請求該頁面

[javascript] view plain copy
  1. window.history.go(-1);  
  2. window.history.go(0)  
  3. //winoow.loaction=window.location

第二種藉助HTTP頭資訊

[javascript] view plain copy
  1. window.location.href=document.referrer  

通過HTTP的頭部中的HTTP_REFERER記錄的連結來源地址實現跳轉,源地址就是指這個頁面從什麼頁面連結過來的頁面。HTTP Referer是header的一部分,當瀏覽器向web伺服器傳送請求的時候,一般會帶上Referer,告訴伺服器我是從哪個頁面連結過來的,伺服器籍此可以獲得一些資訊用於處理。比如從我主頁上鍊接到一個朋友那裡,他的伺服器就能夠從HTTP Referer中統計出每天有多少使用者點選我主頁上的連結訪問他的網站。這樣子很容易獲得訪問來源。JSP,ASP,PHP都提供了訪問次資訊的方法,如果在頁面中包含這些指令碼語言,也可以使用,我還是不會使用它們的。

點選開啟連結http://blog.csdn.net/sulliy/article/details/6262919

相關推薦

如何實現返回自動重新整理

Java編寫WEB程式時,頁面應該只是表示的部分,不應該含有任何Java指令碼程式碼,所以主要考慮使用JS來實現這一功能。我們經常會碰到返回上一頁,但是需要重新整理頁面上與狀態相關的資訊,從而避免重複操作,錯誤資訊的弊端。先說兩種方法: 1. 設定頁面為不快取,訪問上

使用angularjs、ionic框架如何實現返回重新整理

普通的js返回並重新整理這裡就不多說了,百度就有很多方法。 下面說的是使用了angularjs、ionic開發的一個手機app中使用的一個返回上一頁並重新整理的方法。 場景:回覆的頁面是單獨的,點選儲存回覆後會回到上一個頁面,此時  上一個頁面會顯示出你新回覆的內容

js---mui返回重新整理資料

作為小白,寫這個是崩潰的,每一個單獨都可以用,但是放到返回主頁面就不行了,然後然後。。。就各自截取了一段,就好了/(ㄒoㄒ)/~~ HTML程式碼片://使用的是mui的返回 <header class="mui-bar mui-bar-nav"> <a

返回重新整理返回重新整理程式碼

返回並重新整理   <script>alert("恭喜您,操作成功!"); window.location.href=document.referrer; </script> 返回不重新整理   <script>alert("恭喜您,操

js返回重新整理

/點選瀏覽器上的返回按鈕,返回上一頁並重新整理 $(document).ready(function($) { if (window.history && window.history.pushState) {

返回強制頁面重新整理

使用window.history.go(-1)返回上頁的同時重新整理"上頁",這個適合用在"上頁"含有動態更新的內容,比如呼叫論壇的新帖,呼叫文章系統的最新文章等等。如果你的"上頁"沒有動態更新的內容,建議不要弄這個,別人點返回的時候還要再載入一次。 強制載入後重新整理一次

JS 重新整理當前頁面 返回重新整理的方法

 reload 方法,該方法強迫瀏覽器重新整理當前頁面。語法:location.reload([bForceGet])                                                                            

JS(history,location的使用)返回以及返回重新整理

window.history.go(-1);//返回上一頁不重新整理 window.history.back(); //返回上一頁 window.location.href = document

關於網頁返回重新整理的問題(C#、WebForm、移動端)

昨天碼程式碼時遇到一個問題,history.back()或go(x)、forward()之後,呼叫重新整理location.reload()方法,怎麼也跳轉不到上一個頁面。在此處寫出昨天產生的一些疑問以及自己的一些理解,希望大家能夠給出合理的指點,謝謝。實際需求為:完成一個選

php javascript 返回重新整理返回重新整理

js: 返回並重新整理   <script>alert("恭喜您,操作成功!"); window.location.href=document.referrer; </script> 返回不重新整理   <script>alert("恭喜您,操作成功!"); windo

js 返回重新整理頁面

正常情況下我們通過 history.back() 或者 history.go(-1) 返回上一級頁面的時候,是不會重新整理頁面的。這種不重新整理頁面包含兩種情況: 在 android 或者 pc 瀏覽器中看到的頁面有重新整理的效果,其實不是這樣的,這個時候的

js返回刷新 代碼整理

onunload 服務端 script navi 包含 都在 navigate 出現 assign 真正好用: 強制載入後刷新一次 在要載入的頁面加入以下代碼: <script> if(window.name != "bencalie"){ loca

js實現返回後刷新歷史頁面

<input type="button" value="返回" onclick="javascript:window.location.replace(document.referrer);"/> 通過以上的js程式碼可以實現返回上一頁並且刷新歷

ios 瀏覽器返回不會重新整理頁面問題

方法1. 利用 onpageshow 事件觸發: var browserRule = /^.*((iPhone)|(iPad)|(Safari))+.*$/; if (browserRule.test(navigator.userAgent)) { window.onp

php實現返回的功能的3種有效方法

php實現返回上一頁的功能的3種有效方法   header(location:你的上一頁的路徑);   //   注意這個函式前不能有輸出       header(location:.get

ios 瀏覽器返回不會重新整理頁面問題,頁面初始化的方法不執行

https://blog.csdn.net/yang450712123/article/details/79276102 https://blog.csdn.net/Chengbin_Huang/article/details/80271029 https://blog.csdn.net/k4910220

小程式返回部分介面重新整理的問題

若從A頁面跳到B頁面(A—>B),在B頁面操作完成後需要重新整理A頁面的資料,有兩種思路:(推薦使用第2種方法) 1.在返回A頁面的時候呼叫A的頁面onShow()方法,重新查詢載入一次A頁面即可,程式碼為: onShow: function () { this.onLoad

微信小程式 返回傳參

itemClick: function(e) { let pages = getCurrentPages(); let prevPage = pages

微信小程式返回資料自動更新

需求 For example,首頁有一篇文章,點選進入文章詳情頁,首頁和詳情頁都有收藏功能,如何在詳情頁收藏成功之後,首頁的收藏狀態可以 無重新整理修改? getCurrentPages() getCurrentPages()函式用於獲取當前頁面棧的例項,

Fragment中載入網頁(WebView)監聽Back鍵 ,實現返回的功能

首先建立一個抽象類BackHandledFragment,該類有一個抽象方法onBackPressed(),所有BackHandledFragment的子類在onBackPressed方法中處理各自對Back事件的消費邏輯。onBackPressed返回布林值,宿主Acti