使用Ajax怎么对缓存进行处理?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
什么是ajax
ajax是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术,可以通过在后台与服务器进行少量数据交换,使网页实现异步更新。
缓存
浏览器的一次请求需要从服务器获得许多的css、img、js等相关文件,如果每次请求都把相关的资源文件加载一次,对带宽、服务器资源、用户等待时间都有严重的损耗,浏览器有做优化处理,其把css、img、js等文件在第一次请求成功后就在本地保留一个缓存备份,后续的每次请求就在本身获得相关的缓存资源文件,可以明显的加快用户的访问速度。
css、img、js等静态文件可以缓存,但是动态程序文件如php文件就不能缓存,即使缓存我们也不要其缓存效果。
禁止浏览器对动态程序文件缓存的方法:
(1)给请求的地址设置随机数[推荐]
(2)给动态程序设置header头信息
给请求的地址设置随机数,避免缓存效果:
<!--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> <h3>ajax发起服务器端的请求(缓存处理)</h3> <input type="button" value="触发" onclick="f1()"> </body></html>
php
<?php$fp = fopen("./10.txt", "a");//追加方式打开10.txt文件(文件不存在会自动创建)fwrite($fp,"java");//给文件写内容fclose($fp);//关闭文件?>
给动态程序设置header头信息:
php
<?php//设置header头禁止浏览器缓存当前页面header("Cache-Control:no-cache");header("Pragma:no-cache");header("Expirse:-1");$fp = fopen("./10.txt", "a");//追加方式打开10.txt文件(文件不存在会自动创建)fwrite($fp,"java");//给文件写内容fclose($fp);//关闭文件?>
看完上述内容,你们掌握使用Ajax怎么对缓存进行处理的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注编程网行业资讯频道,感谢各位的阅读!