本文實例講述了Ajax對緩存的處理方法。分享給大家供大家參考,具體如下:
緩存
瀏覽器的一次請求需要從服務器獲得許多的css、img、js等相關文件,如果每次請求都把相關的資源文件加載一次,對帶寬、服務器資源、用戶等待時間都有嚴重的損耗,瀏覽器有做優(yōu)化處理,其把css、img、js等文件在第一次請求成功后就在本地保留一個緩存?zhèn)浞?,后續(xù)的每次請求就在本身獲得相關的緩存資源文件,可以明顯的加快用戶的訪問速度。
css、img、js等靜態(tài)文件可以緩存,但是動態(tài)程序文件如php文件就不能緩存,即使緩存我們也不要其緩存效果。
禁止瀏覽器對動態(tài)程序文件緩存的方法:
(1)給請求的地址設置隨機數(shù)[推薦]
(2)給動態(tài)程序設置header頭信息
給請求的地址設置隨機數(shù),避免緩存效果:
!--10-cache.html-->
!DOCTYPE html>
html>
head>
meta charset="utf-8">
title>/title>
script type="text/javascript">
function f1(){
var xhr = new XMLHttpRequest();
xhr.open('get', './10.php?' + Math.random());//保證每次請求的地址都不一樣
xhr.send(null);
}
/script>
/head>
body>
h2>ajax發(fā)起服務器端的請求(緩存處理)/h2>
input type="button" value="觸發(fā)" onclick="f1()">
/body>
/html>
10.php
?php
$fp = fopen("./10.txt", "a");//追加方式打開10.txt文件(文件不存在會自動創(chuàng)建)
fwrite($fp,"java");//給文件寫內(nèi)容
fclose($fp);//關閉文件
?>
給動態(tài)程序設置header頭信息:
10.php
?php
//設置header頭禁止瀏覽器緩存當前頁面
header("Cache-Control:no-cache");
header("Pragma:no-cache");
header("Expirse:-1");
$fp = fopen("./10.txt", "a");//追加方式打開10.txt文件(文件不存在會自動創(chuàng)建)
fwrite($fp,"java");//給文件寫內(nèi)容
fclose($fp);//關閉文件
?>
更多關于ajax相關內(nèi)容感興趣的讀者可查看本站專題:《jquery中Ajax用法總結》、《JavaScript中ajax操作技巧總結》、《PHP+ajax技巧與應用小結》及《asp.net ajax技巧總結專題》
希望本文所述對大家ajax程序設計有所幫助。
您可能感興趣的文章:- AJAX 緩存問題的兩種解決方法(IE)
- 防止jQuery ajax Load使用緩存的方法小結
- jQuery ajax cache緩存問題
- Jquery中Ajax 緩存帶來的影響的解決方法
- 如何解決Ajax請求結果的緩存問題說明
- ajax緩存問題解決途徑
- Ajax清除瀏覽器js、css、圖片緩存的方法
- ajax的get請求時緩存處理解決方法
- 解析瀏覽器端的AJAX緩存機制
- AJAX防止頁面緩存的代碼