首页 / 缓存 / tips 前端 阻止 浏览器缓存静态资源
tips 前端 阻止 浏览器缓存静态资源
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了tips 前端 阻止 浏览器缓存静态资源,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1681字,纯文字阅读大概需要3分钟。
内容图文
手机浏览器 uc上一直表现良好 qq浏览器还有微信上网址直接打开的(一样采用qq浏览器的内核) 大量缓存了静态资源
css js 图片 等这些当出现改动了刷新网页根本没有效果
电脑端浏览器没有问题 因为部分手机端浏览器 总会出于省流量性能等因素缓存静态资源本来没有什么问题 不过这会给开发带来困扰 不适合调试 如果只是这样还好 可是还是会对生产环境造成一定影响比如当服务器端的css文件内内容有了改动 手机端浏览器却一直没有释放缓存 就会造成一些页面上出现明显的问题所以给css js jpg swf 等加上时间戳是必要的,最好是每当文件做了修改就变动时间戳让浏览器去下载,而没有改动就调用浏览器缓存的文件
所以可以这样
1 <?php $css=‘/xxx/xxx.css‘ ?> 2 <link rel="stylesheet" type="text/css" href="<?php echo "$css" . ‘?time=‘ . filemtime( $css ); ?>" />
note:php 原则上‘‘ ""是通用的,echo函数输出时 ‘ ‘内的内容会被解析为纯字符串, " "内的变量会被解析会变量的值,但是不能解析函数的值 .是php的连接符
filemtime("file")将得到file最近一次修改时间,得到类似1430451431这个格式的unix时间戳
原理是通过增加一个后缀改变了请求的文件的url,从而迫使浏览器认为这是不同的文件去下载更新缓存
最终输出的内容就像 百度云的首页html源代码里这样
< link href ="/ppres/static/css/pcloud_feedpage_all.css?t=201504154611" rel ="stylesheet" type ="text/css" />
css 文件可以这样加时间戳,其它静态资源也可参照此加
不过开发时也可以直接这样 让它每次都更新时间戳,
< link rel ="stylesheet" type ="text/css" href ="/xx/style.css?time=<?php echo time(); ?> " />
其它语言如jsp asp 等同样可以轻易做到
不过不可以用javascript做 虽然可以用它这样得到时间戳
1 <script> 2var time1=Date.parse(new Date()); 3var time2=new Date().valueOf(); 4var time3=new Date().getTime(); 5 console.log(‘timestamp:‘+time1); 6 console.log(‘timestamp:‘+time2); 7 console.log(‘timestamp:‘+time3); 8 9/* time1的毫秒部分将是000,不会计算毫秒 10 time2,time3会记录精确到毫秒,且结果相同 */11 </script>
但是是没有意义的,在客户端即使插入到了引用路径中也是也是没有意义 因为请求是向服务器端发的 需要考虑一个是执行加时间戳的时间上 一个是服务器端的路由控制
wordpress下也可以参照这样
来自winy:http://www.hilau.com/1311273.html /or/ http://www.laozhuhome.com/html/automatically-version-your-css-and-javascript-files
用grunt作前端工作流时更可以使用这样一个tool
automatic-version-increment
很多方式,选喜欢的吧!
原文:http://www.cnblogs.com/isdom/p/webtips002.html
内容总结
以上是互联网集市为您收集整理的tips 前端 阻止 浏览器缓存静态资源全部内容,希望文章能够帮你解决tips 前端 阻止 浏览器缓存静态资源所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。