禁用客戶端緩存
HTM網頁
<META HTTP-EQUIV="pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache, must-revalidate">
<META HTTP-EQUIV="expires" CONTENT="Wed, 26 Feb 1997 08:21:57 GMT">
ASP網頁
<%
Response.Expires = -1
Response.ExpiresAbsolute = Now() - 1
Response.cachecontrol = "no-cache"
%>
PHP網頁
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Cache-Control: no-cache, must-revalidate");
header("Pragma: no-cache");
JSP
response.setHeader("Pragma","No-Cache");
response.setHeader("Cache-Control","No-Cache");
response.setDateHeader("Expires", 0);
C#中禁止cache的方法!
Response.Buffer=true;
Response.ExpiresAbsolute=System.DateTime.Now.AddSeconds(-1);
Response.Expires=0;
Response.CacheControl="no-cache"; javascript
加入
<MEAT HTTP-EQUIV="Pragma" CONTENT="no-cache">
不緩存。php
1、Expires(期限)
說明:能夠用於設定網頁的到期時間。一旦網頁過時,必須到服務器上從新調閱。
用法:<META HTTP-EQUIV="expires" CONTENT="Wed, 26 Feb 1997 08:21:57 GMT">
注意:必須使用GMT的時間格式。
2、Pragma(cache模式)
說明:禁止瀏覽器從本地機的緩存中調閱頁面內容。
用法:<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
注意:這樣設定,訪問者將沒法脫機瀏覽。
3、腳本實現
<%
response.expires = 0
response.expiresabsolute = now() - 1
response.addHeader "pragma","no-cache" response.addHeader "cache-control","private"
Response.cachecontrol = "no-cache"
%>html
IE瀏覽器訪問一個網頁的時候,首先會到臨時文件夾中去尋找和這個網頁相關的各個文件(如各類圖片)。若是在臨時文件夾中找到了一些文件,那麼瀏覽器就會使用這些臨時文件夾中的文件,而不去服務器下載這些文件。
不幸的是,個人服務器上的文件是常常變化的,若是IE優先考慮臨時文件夾中的文件,那麼就不能反映出我服務器上的變化。
如今有兩個解決辦法,但都有缺陷:
一是使用網頁的自刷新,可是刷新速度快的話會有閃爍,不符合我其餘方面的要求。
二是在IE設置中設成「每次訪問此頁時檢查」。此時IE不考慮臨時文件夾中的內容,直接從服務下載各個文件。可是這種辦法須要用戶進行設置,對用戶來講有點麻煩。並且這樣的設置會影響用戶訪問其餘網站的速度。 java
###############################################jquery
html方法:ajax
<META HTTP-EQUIV="pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache, must-revalidate">
<META HTTP-EQUIV="expires" CONTENT="Wed, 26 Feb 1997 08:21:57 GMT">瀏覽器
php方法:緩存
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Cache-Control: no-cache, must-revalidate");
header("Pragma: no-cache");服務器
六、禁止圖片緩存:在圖片後面加一個隨機參數,如:dom
<img src=」images/bg.gif?temp_id=156404/>
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="0">
<META HTTP-EQUIV="PRAGMA" CONTENT="NO-CACHE"> <!-- 禁止瀏覽器緩存頁面 -->
六、那麼如何禁止IE緩存,採用Ajax技術數據更新不及時
方法1:服務器端代碼加入response.setHeader("Cache-Control", "no-cache, must-revalidate");
方法2:用JavaScript在Ajax提交的時候加入一個隨機數做爲URL中的一個參數。req.open(url + "&" + Math.random).
緣由:IE中若是XMLHttpRequest提交的URL與歷史同樣則使用緩存,根本不向服務器端提交。所以沒法取到剛提交的數據。
在ajax的應用中,當用戶訪問一次後,再進行訪問當XMLHttpRequest請求不變的時,在ie中會出現這樣的現象,那就是取數據不會到服務器端 取,而是直接從ie的緩存中取,則會就是ie的緩存問題。在ajax中解決緩存的問題採用時間戳的方式,即爲每一個XNLHttpRequest請求後面加 一個時間戳的標誌,從而保證每次請求都是新的從而解決ie緩存問題,下面是簡單的例子。
下面是簡單的例子,驗證用戶點擊了驗證按鈕幾回的例子一、首先看js的代碼Java代碼