Ajax對(duì)緩存的處理方法實(shí)例分析
本文實(shí)例講述了Ajax對(duì)緩存的處理方法。分享給大家供大家參考,具體如下:
緩存
瀏覽器的一次請(qǐng)求需要從服務(wù)器獲得許多的css、img、js等相關(guān)文件,如果每次請(qǐng)求都把相關(guān)的資源文件加載一次,對(duì)帶寬、服務(wù)器資源、用戶等待時(shí)間都有嚴(yán)重的損耗,瀏覽器有做優(yōu)化處理,其把css、img、js等文件在第一次請(qǐng)求成功后就在本地保留一個(gè)緩存?zhèn)浞荩罄m(xù)的每次請(qǐng)求就在本身獲得相關(guān)的緩存資源文件,可以明顯的加快用戶的訪問(wèn)速度。
css、img、js等靜態(tài)文件可以緩存,但是動(dòng)態(tài)程序文件如php文件就不能緩存,即使緩存我們也不要其緩存效果。
禁止瀏覽器對(duì)動(dòng)態(tài)程序文件緩存的方法:
(1)給請(qǐng)求的地址設(shè)置隨機(jī)數(shù)[推薦]
(2)給動(dòng)態(tài)程序設(shè)置header頭信息
給請(qǐng)求的地址設(shè)置隨機(jī)數(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());//保證每次請(qǐng)求的地址都不一樣
xhr.send(null);
}
</script>
</head>
<body>
<h2>ajax發(fā)起服務(wù)器端的請(qǐng)求(緩存處理)</h2>
<input type="button" value="觸發(fā)" onclick="f1()">
</body>
</html>
10.php
<?php
$fp = fopen("./10.txt", "a");//追加方式打開(kāi)10.txt文件(文件不存在會(huì)自動(dòng)創(chuàng)建)
fwrite($fp,"java");//給文件寫(xiě)內(nèi)容
fclose($fp);//關(guān)閉文件
?>
給動(dòng)態(tài)程序設(shè)置header頭信息:
10.php
<?php
//設(shè)置header頭禁止瀏覽器緩存當(dāng)前頁(yè)面
header("Cache-Control:no-cache");
header("Pragma:no-cache");
header("Expirse:-1");
$fp = fopen("./10.txt", "a");//追加方式打開(kāi)10.txt文件(文件不存在會(huì)自動(dòng)創(chuàng)建)
fwrite($fp,"java");//給文件寫(xiě)內(nèi)容
fclose($fp);//關(guān)閉文件
?>
更多關(guān)于ajax相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《jquery中Ajax用法總結(jié)》、《JavaScript中ajax操作技巧總結(jié)》、《PHP+ajax技巧與應(yīng)用小結(jié)》及《asp.net ajax技巧總結(jié)專題》
希望本文所述對(duì)大家ajax程序設(shè)計(jì)有所幫助。
相關(guān)文章:
1. 爬取今日頭條Ajax請(qǐng)求2. layui Ajax請(qǐng)求給下拉框賦值的實(shí)例3. 詳解瀏覽器的緩存機(jī)制4. Ajax實(shí)現(xiàn)表格中信息不刷新頁(yè)面進(jìn)行更新數(shù)據(jù)5. Ajax引擎 ajax請(qǐng)求步驟詳細(xì)代碼6. ajax請(qǐng)求后臺(tái)得到j(luò)son數(shù)據(jù)后動(dòng)態(tài)生成樹(shù)形下拉框的方法7. vue 路由緩存 路由嵌套 路由守衛(wèi) 監(jiān)聽(tīng)物理返回操作8. Ajax對(duì)xml信息的接收和處理操作實(shí)例分析9. 基于Ajax的聊天機(jī)器人功能的實(shí)現(xiàn)10. 一文掌握ajax、fetch和axios的區(qū)別對(duì)比

網(wǎng)公網(wǎng)安備