Ajax對緩存的處理方法實(shí)例分析
本文實(shí)例講述了Ajax對緩存的處理方法。分享給大家供大家參考,具體如下:
緩存
瀏覽器的一次請求需要從服務(wù)器獲得許多的css、img、js等相關(guān)文件,如果每次請求都把相關(guān)的資源文件加載一次,對帶寬、服務(wù)器資源、用戶等待時間都有嚴(yán)重的損耗,瀏覽器有做優(yōu)化處理,其把css、img、js等文件在第一次請求成功后就在本地保留一個緩存?zhèn)浞荩罄m(xù)的每次請求就在本身獲得相關(guān)的緩存資源文件,可以明顯的加快用戶的訪問速度。
css、img、js等靜態(tài)文件可以緩存,但是動態(tài)程序文件如php文件就不能緩存,即使緩存我們也不要其緩存效果。
禁止瀏覽器對動態(tài)程序文件緩存的方法:
(1)給請求的地址設(shè)置隨機(jī)數(shù)[推薦]
(2)給動態(tài)程序設(shè)置header頭信息
給請求的地址設(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());//保證每次請求的地址都不一樣 xhr.send(null); } </script> </head> <body> <h2>ajax發(fā)起服務(wù)器端的請求(緩存處理)</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);//關(guān)閉文件 ?>
給動態(tài)程序設(shè)置header頭信息:
10.php
<?php //設(shè)置header頭禁止瀏覽器緩存當(dāng)前頁面 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);//關(guān)閉文件 ?>
更多關(guān)于ajax相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《jquery中Ajax用法總結(jié)》、《JavaScript中ajax操作技巧總結(jié)》、《PHP+ajax技巧與應(yīng)用小結(jié)》及《asp.net ajax技巧總結(jié)專題》
希望本文所述對大家ajax程序設(shè)計有所幫助。
相關(guān)文章:
1. 開源 Ajax JSF Library - RCFaces 發(fā)布2. python 使用多線程創(chuàng)建一個Buffer緩存器的實(shí)現(xiàn)思路3. ajax和fetch的區(qū)別點(diǎn)總結(jié)4. Spring Cache和EhCache實(shí)現(xiàn)緩存管理方式5. 基于Spring Boot利用 ajax實(shí)現(xiàn)上傳圖片功能6. 快速解決ajax傳遞為空但顯示在頁面上為undefined的問題7. SpringBoot+SpringCache實(shí)現(xiàn)兩級緩存(Redis+Caffeine)8. Ajax的Java 工具包 DWR version 1.0 released9. 聊一聊數(shù)據(jù)請求中Ajax、Fetch及Axios的區(qū)別10. ASP+ajax實(shí)現(xiàn)頂一下、踩一下同支持與反對的實(shí)現(xiàn)代碼
