⑴ 如何禁止網頁緩存!
INTERNET選項---常規----INTERNET臨時文件--設置 就OK
⑵ 怎麼能有效禁止刷新網頁、禁止"後退"(或網頁立即過期)的代碼
瀏覽器的後退按鈕使得我們能夠方便地返回以前訪問過的頁面,它無疑非常有用但有時候我們不得不關閉這個功能,以
防止用戶打亂預定的頁面訪問次序本文介紹網路上可找到的各種禁用瀏覽器後退按鈕方案,分析它們各自的優缺點和適
用場合
一概述
曾經有許多人問起,怎樣才能禁用瀏覽器的後退按鈕?,或者怎樣才能防止用戶點擊後退按鈕返回以前瀏
覽過的頁面?在ASP論壇上,這個問題也是問得最多的問題之一遺憾的是,答案非常簡單:我們無法禁用瀏覽器的後退
按鈕
起先我對於居然有人想要禁用瀏覽器的後退按鈕感到不可思議後來,看到竟然有那麼多的人想要禁用這個後退按
鈕,我也就釋然(想要禁用的只有後退按鈕,不包括瀏覽器的前進按鈕)因為在默認情況下,用戶提交表單之後可以通
過後退按鈕返回表單頁面(而不是使用編輯按鈕!),然後再次編輯並提交表單向資料庫插入新的記錄這是我們不
願看到的
因此我就決定要找出避免出現這種情況的方法我訪問了許多網站,參考了這些網站所介紹的各種實現方法如果你
經常訪問ASP編程網站,本文所介紹的部分內容你可能已經見到過本文的任務是把各種可能的方法都介紹給大家,然後找
出最好的方法!
二禁止緩存
在我找到的許多方案中,其中有一種建議禁止頁面緩存具體是使用伺服器端腳本,如下所示:
<%
Response.Buffer = True
Response.ExpiresAbsolute = Now() - 1
Response.Expires = 0
Response.CacheControl = "no-cache"
%>
這種方法非常有效!它強制瀏覽器重新訪問伺服器下載頁面,而不是從緩存讀取頁面使用這種方法時,編程者的主
要任務是創建一個會話級的變數,通過這個變數確定用戶是否仍舊可以查看那個不適合通過後退按鈕訪問的頁面由於瀏
覽器不再緩存這個頁面,當用戶點擊後退按鈕時瀏覽器將重新下載該頁面,此時程序就可以檢查那個會話變數,看看是否
應該允許用戶打開這個頁面
例如,假設我們有如下表單:
<%
Response.Buffer = True
Response.ExpiresAbsolute = Now() - 1
Response.Expires = 0
Response.CacheControl = "no-cache"
If Len(Session("FirstTimeToPage")) > 0 then
&single; 用戶已經訪問過當前頁面,現在是再次返回訪問
&single; 清除會話變數,將用戶重定向到登錄頁面
Session("FirstTimeToPage") = ""
Response.Redirect "/Bar.asp"
Response.End
End If
&single; 如果程序運行到這里,說明用戶能夠查看當前頁面
&single; 以下開始創建表單
%>
<form method=post action="SomePage.asp">
<input type=submit>
</form>
我們藉助會話變數FirstTimeToPage檢查用戶是否是第一次訪問當前頁面如果不是第一次(即Session
("FirstTimeToPage")包含某個值),那麼我們就清除會話變數的值,然後把用戶重新定向到一個開始頁面這樣,當表單
提交時(此時SompePage.asp被打開),我們必須賦予FirstTimeToPage一個值即,在SomePage.asp中我們需要加上下面
的代碼:
Session("FirstTimeToPage") = "NO"
這樣,已經打開SomePage.asp的用戶如果點擊後退按鈕,瀏覽器將重新請求伺服器下載頁面,伺服器檢查到Session
("FirstTimeToPage")包含了一個值,於是就清除Session("FirstTimeToPage"),並把用戶重定向到其他頁面當然,所有
這一切都需要用戶啟用了Cookie,否則會話變數將是無效的(有關該問題的更多說明,請參見For session variables
to work, must the Web visitor have cookies enabled?)
另外,我們也可以用客戶端代碼使瀏覽器不再緩存Web頁面:
<html>
<head>
<meta http-equiv="Expires" CONTENT="0">
<meta http-equiv="Cache-Control" CONTENT="no-cache">
<meta http-equiv="Pragma" CONTENT="no-cache">
</head>
如果使用上面的方法強制瀏覽器不再緩存Web頁面,必須注意以下幾點:
只有在使用安全連接時Pragma: no-cache才防止瀏覽器緩存頁面對於不受安全保護的頁面,Pragma: no-cache
被視為與Expires: -1相同,此時瀏覽器仍舊緩存頁面,但把頁面標記為立即過期
在IE 4或5中,Cache-ControlMETA HTTP-EQUIV標記將被忽略,不起作用
在實際應用中我們可以加上所有這些代碼然而,由於這種方法不能適用於所有的瀏覽器,所以是不推薦使用的但
如果是在Intranet環境下,管理員可以控制用戶使用哪種瀏覽器,我想還是有人會使用這種方法
三其他方法
接下來我們要討論的方法以後退按鈕本身為中心,而不是瀏覽器緩存這兒有一篇文章Rewiring the Back Button很
值得參考不過我注意到,如果使用這種方法,雖然用戶點擊一下後退按鈕時他不會看到以前輸入數據的頁面,但只要點
擊兩次就可以,這可不是我們希望的效果,因為很多時候,固執的用戶總是能夠找到繞過預防措施的辦法
另外一種禁用後退按鈕的辦法是用客戶端JavaScript打開一個沒有工具條的窗口,這使得用戶很難返回前一頁面,但
不是不可能一種更安全但相當惱人的方法是,當表單提交時打開一個新的窗口,與此同時關閉表單所在的窗口但我覺
得這種方法不值得認真考慮,因為我們總不能讓用戶每提交一個表單就打開一個新窗口
那麼,在那個我們不想讓用戶返回的頁面是否也可以加入JavaScript代碼呢?在這個頁面中加入的JavaScript代碼可
用來產生點擊前進按鈕的效果,這樣也就抵消了用戶點擊後退按鈕所產生的動作用於實現該功能的JavaScript代碼如下
所示:
<script language="JavaScript">
<!--
;
//-->
</script>
同樣地,這種方法雖然有效,但距離最好的方法還差得很遠後來我又看到有人建議用location.replace從一個
頁面轉到另一個頁面這種方法的原理是,用新頁面的URL替換當前的歷史紀錄,這樣瀏覽歷史記錄中就只有一個頁面,後
退按鈕永遠不會變為可用我想這可能正是許多人所尋求的方法,但這種方法仍舊不是任何情況下的最好方法使用這種
方法的實例如下所示:
<A HREF="PageName.htm"
event.returnValue=false; ">
禁止後退到本頁面的鏈接</A>
禁止後退到本頁面的鏈接!
這種方法的缺點在於:簡單地運用Response.Redirect將不再有效,這是因為每次用戶從一個頁面轉到另一個頁面,
我們都必須用客戶端代碼清除location.history另外還要注意,這種方法清除的是最後一個訪問歷史記錄,而不是全部
的訪問記錄
點擊上面的鏈接,你將打開一個簡單的HTML頁面再點擊後退按鈕,你可以看到這時打開的不是本頁面,而是本頁面
之前的頁面!(當然,你必須在瀏覽器中啟用了客戶端JavaScript代碼)
經過一番仔細的尋尋覓覓之後,我發現仍舊無法找出真正能夠完全禁用瀏覽器後退按鈕的辦法所有這里介紹的方法
都能夠在不同程度上以不同的方式禁止用戶返回前一頁面,但它們都有各自的局限由於不存在能夠完全禁用後退按鈕
的方法,所以最好的方案應該是:混合運用客戶端腳本和伺服器端腳本
⑶ jsp回退並刷新頁面
在頁面前面加上下面代碼
<%
response.setHeader("Cache-Control", "no-store"); //HTTP 1.1
response.setHeader("Pragma", "no-cache"); //HTTP 1.0
response.setDateHeader("Expires", 0); //prevents caching at the proxy server
%>
這段代碼是禁止頁面緩存。這樣你在調用window.history.go(-1); 的時候不會從緩存里取頁面,而是直接刷新之前的頁面
⑷ html禁止緩存代碼
<META HTTP-EQUIV="pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Cache-Control" CONTENT="no-store, must-revalidate">
<META HTTP-EQUIV="expires" CONTENT="Wed, 26 Feb 1997 08:21:57 GMT">
<META HTTP-EQUIV="expires" CONTENT="0">
⑸ ASP.NET幾種清除頁面緩存的方法
在asp.net中使用模式dialog時,你會發現每次打開的頁面都是相同的內容,頁面內容並沒有刷新,這是緩存的原因造成的,
解決方法如下:
第一種是ASP.NET清除頁面緩存
Response.Buffer = true;
Response.ExpiresAbsolute = System.DateTime.Now.AddSeconds(-1);
Response.Expires = 0;
Response.CacheControl = "no-cache";
Response.AddHeader("Pragma", "No-Cache");
第二種是HTML方法<HEAD<META HTTP-EQUIV="Pragma" CONTENT="no-cache"
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache"
<META HTTP-EQUIV="Expires" CONTENT="0"</HEAD第三種是重新調用原頁面的時候在給頁面傳一個參數: href="****.ASPX?random()"
最後一種是在在頁面中禁用緩存
在web開發中合理使用緩存可以有效的提高網站的性能,但是在某些場合下因為緩存的存在會帶來很多的問題。
例如:因為緩存的存在會造成重復提交數據的問題,驗證碼圖片不能正確顯示的問題
,等等。這個時候我們就要禁用頁面緩存的功能。
我們常用的做法是發送一個no-cache的指令,但是實際使用過程中我們發現,這個指令對IE是有效的,但是對Firefox卻沒有效,這是因為,使用該指令Firefox不緩存HTTPS pages 但是還是會緩存HTTP pages ,這是Firefox的一個BUG,解決的辦法很簡單,就是使用no-store代替no-cache,同時發送no-store和no-cache指令
ASP.net中的處理方法,在不需要緩存的頁面中添加如下代碼
⑹ html中怎麼用meta語句禁用頁面緩存
<meta
http-equiv="Pragma"
contect="no-cache">是用於設定禁止瀏覽器
從本地機的緩存中調閱頁面內容,設定後一旦離開網頁就無法從Cache中再調出;
⑺ 如何讓html頁面不緩存,js永久緩存
當瀏覽不同Url時,瀏覽器會自動將當前訪問的地址進行一次緩存;而第二次訪問時著調用緩存下來的頁面,從而達到頁面快速載入(頁面載入優化)的目的;
因此,我們可以給頁面後面設定個不同的值,讓頁面保持沒錯訪問的不同即可達到不緩存的目的了!
下面是個簡單的示例:
復制代碼 代碼如下:
<script>
document.write("<script type='text/javascript' src='/js/test.js?"+Math.random();+"'></script>");
</script>
其他的類似,只需在地址後加上+Math.random()
注意:因為Math.random() 只能在Javascript 下起作用,故只能通過Javascript的調用才可以
最後加一個ajax也不讓緩存的方法
復制代碼 代碼如下:
xmlHttp.open("GET", "ajax.asp?now=" + new Date().getTime(), true);
記得後面的now=" + new Date().getTime()是重點,需要帶參數的。
希望本文所述對大家的javascript程序設計有所幫助。
以上是雲棲社區小編為您精心准備的的內容,在雲棲社區的博客、問答、公眾號、人物、課程等欄目也有的相關內容,歡迎繼續使用右上角搜索按鈕進行搜索js , html , 頁面 不緩存 javascript 緩存、javascript 清除緩存、javascript緩存數據、javascript 本地緩存、javascript 緩存機制,以便於您獲取更多的相關知識。
⑻ 請問網頁的緩存清除在java代碼中怎麼解決
IE總是彈出腳本錯誤提示窗口
出現此問題是因為該網頁的 HTML 源代碼不能使用客戶端腳本(如 Microsoft JScript 或 Visual Basic 腳本)正確工作。發生此問題可能是因為以下原因之一: " 網頁的 HTML 源代碼中有問題。
" 您的計算機或網路上阻止了活動腳本、ActiveX 控制項或 Java 小程序。Internet Explorer 或另外一種程序(如防病毒程序或防火牆)可以配置為阻止活動腳本、ActiveX 控制項或 Java 小程序
" 防病毒軟體配置為掃描您的「臨時 Internet 文件」或「已下載的程序文件」文件夾。
" 您計算機上的腳本引擎損壞或過時。
" 您計算機上的 Internet 相關文件夾損壞。
" 您的視頻卡驅動程序已損壞或者已過時。
" 您計算機上的 DirectX 組件損壞或過時。
注意:伺服器端腳本 -- 如 Active Server Pages (ASP) 中的 Visual Basic 腳本 -- 運行在 Web 伺服器上。因伺服器端腳本故障而發生的腳本錯誤不在 Internet Explorer 中生成錯誤消息,但也可能會創建一個不能正確顯示或工作的網頁。
一、錯誤特徵:
行: 247 字元: 2 錯誤: 拒絕訪問 代碼: 0
二、解決方案
1、清除一下IE瀏覽器的緩存,點IE上的工具——然後再選擇最下面的Internet選項,再點Internet刪除文件(記得勾上刪除所有離線內容),確定後再重新打開IE瀏覽器試試,同時請確認您使用的是IE6.0及以上版本。
2、您的網頁上清緩存,在網頁上選擇工具->Interner選項->刪除Cookies和刪除文件,然後再確定。
3、請您點擊IE瀏覽器中的「工具」,選擇「internet選項」,進入「安全」頁面,點擊「自定義級別」,將您的安全設置設為「低」。
4、清空一下IE瀏覽器的cookies文件,在IE瀏覽器中設置「禁止自動腳本更新」,並不要選擇「禁止運行ActiveX控制項」,然後再嘗試操作。
三、總結1、錯誤類型不固定 行: 247 字元: 2 錯誤: 拒絕訪問 代碼: 0 數字部分都是可變的。
2、解決方案中的4條不用都改,我的錯誤只用了1、2條就解決了。
如果有頁面出現腳本錯誤,就把他另存,然後一點點刪除,如果當你刪除一段代碼後不再出現腳本錯誤,那就是那一段代碼出現問題,如果那段代碼不重要或是根本不需要,你就可以直接刪除;如果那段代碼很重要,那可以找段代碼代替。不過我還是建議你加幾個網頁方面的Q群,裡面有很多深藏不露的高手。可以在網上直接搜到