禁止ajax緩衝的幾種方法介紹

來源:互聯網
上載者:User

1、在服務端(如php中)加上“header("Cache-Control:no-cache,must-revalidate");”;

2、在ajax發送請求前加上“anyajaxObj.setRequestHeader("If-Modified-Since","0");”;

3、在ajax發送請求前加上“anyajaxObj.setRequestHeader("Cache-Control","no-cache");”;

4、在ajax的URL參數後加上“"?fresh="+Math.random();//當然這裡參數fresh可以任意取了”;

5、第五種方法和第四種類似,在URL參數後加上“"?timestamp="+new Date().getTime();”;

6、用POST替代GET:不推薦。

1、加個隨機數:

 代碼如下 複製代碼
xmlHttp.open("GET","ajax.asp?now="+new Date().getTime(),true);


2、在要非同步擷取的asp頁面中寫一段禁止緩衝的代碼:

 代碼如下 複製代碼
Response.Buffer=True
Response.ExpiresAbsolute=Now()-1
Response.Expires=0
Response.CacheControl="no-cache"


3、在ajax發送請求前加上“xmlHTTP.setRequestHeader("If-Modified-Since","0");”可以禁止緩衝:

 代碼如下 複製代碼
xmlHTTP.open("get",URL,true);
xmlHTTP.onreadystatechange=callHTML;
xmlHTTP.setRequestHeader("If-Modified-Since","0");
xmlHTTP.send();


另一個作者寫到:

  ajax的緩衝是由瀏覽器維持的,對於發向伺服器的某個url,ajax僅在第一次請求時與伺服器互動資訊,之後的請求中,ajax不再向伺服器提交請求,而是直接從緩衝中提取資料。

  有些情況下,我們需要每一次都從伺服器得到更新後資料。思路是讓每次請求的url都不同,而又不影響正常應用:在url之後加入隨機內容,如:

 代碼如下 複製代碼
url=url+"&"+Math.random();


Key points:

1、每次請求的url都不一樣(ajax的緩衝便不起作用);

2、不影響正常應用(最基本的)。

方法二(未經證實):

php中禁止緩衝

 代碼如下 複製代碼
header("Cache-Control: no-cache, must-revalidate");

 

在JSP中禁止緩衝

 代碼如下 複製代碼
response.addHeader("Cache-Control","no-cache");
response.addHeader("Expires","Thu,01 Jan 1970 00:00:01 GMT"); 


HTTP:

 代碼如下 複製代碼
<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">
<META HTTP-EQUIV="expires" CONTENT="0">

上面提供的這些禁止ajax資料緩衝的方法只是常用的幾種我們還有如php,asp.net等等這類禁止方法都未測試,所以不拿出來說了。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.