如何让前端浏览器不进行缓存
当浏览器要访问一个某个资源时,浏览器会通过资源的URL来判断是否读取缓存中的内容。由于浏览器存在缓存,所以会导致服务器上的内容修改了,但是在浏览器却显示没有变化。
为了解决这个问题,可以在每次请求的时候加一个随机数参数或者时间戳。它的作用就是让浏览器误以为请求的是一个新链接,这样浏览器就不会去读取缓存里的内容。
代码如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<!--设置过期时间设置0为直接过期并清除缓存-->
<meta http-equiv="Expires" content="0">
<!--设置不缓存页面-->
<meta http-equiv="Pragma" content="no-cache">
<!--设置不修改消息存储-->
<meta http-equiv="Cache-control" content="no-cache">
<!--同上-->
<meta http-equiv="Cache" content="no-cache">
<title>test</title>
</head>
<body>
<div id="test">
</div>
</body>
<script type="text/javascript">
//js后缀加个时间戳每回更新都会改变,浏览器视其为新的js不会进行缓存
document.write('<script type="text/javascript" src="js/test.js?time='+new Date().getTime()+'"><'+'/'+'script>');
//css也同上
document.write('<link rel="stylesheet" href="css/test.css?time=' + new Date().getTime() + '"/>');
</script>
</html>
弊端:因为缓存可以减少对服务器的直接访问,减少服务器的压力。浏览器不读取缓存里的内容之后,每次都会访问服务器,这样就会增加服务器的压力。
---------------------
作者:Roger_CoderLife
来源:CSDN
原文:https://blog.csdn.net/Roger_CoderLife/article/details/83021360
版权声明:本文为博主原创文章,转载请附上博文链接!
相关文章
- gulp最佳实践(包含js,css,html预编译,合并,压缩,浏览器自动刷新)
- 火狐浏览器缓存区的利用,如何提取火狐缓存的动画
- 【原】CSS实现背景透明,文字不透明,兼容所有浏览器
- 清除Chrome浏览器的历史记录、缓存
- nginx优化:使用expires在浏览器端缓存静态文件
- doctype声明、浏览器的标准、怪异等模式
- Nginx 浏览器之HTTP缓存的那些事
- 【技术干货】浏览器工作原理和常见WEB攻击 (下)
- atitit。浏览器缓存机制 and 微信浏览器防止缓存的设计 attilax 总结
- atitit.js 各版本 and 新特性跟浏览器支持报告
- 关于现代浏览器的 back-and-forward 缓存机制
- 微信公众号支付/微信内置浏览器微信h5支付报错:当前页面的URL未注册:https:∥xxxxxx!解决方法一看就会
- 浏览器、负载均衡 、进程内部层…那些你需要掌握的多级缓存
- 云端远程Ubuntu系统进行无桌面Web浏览器自动化测试
- Nginx实践篇(2)- Nginx作为静态资源web服务 - 控制浏览器缓存、防盗链
- CSDN使用Markdown编辑的基本操作(如果刚开始不能编辑界面,点不动,我使用Microsoft浏览器清除一个月的缓存,就解决了问题!)
- 图画(txt等一下)实施开放的默认下载的默认浏览器,而不是(Java文本)
- JavaWeb—如何判断用户使用的是什么浏览器
- Eclipse 内置浏览器
- 谷歌浏览器的源码分析(26)