讨厌的浏览器缓存

简介:

浏览器出于性能考虑,对js/css一类的静态资源,并不是每次都向服务器询问此资源是否有更新,各位一定都有这样的经历:明明服务器上的脚本更新了,但抓包发现浏览器根本没有发请求询问,直接就使用了本地的缓存,结果导致蹦了脚本错误提示,非要F5甚至Ctrl+F5强制刷新一下才好。

页面我们可以强制浏览器不缓存,但资源不受我们控制,目前可行的方法就是加后缀,每次资源有更新时就变换这个后缀,让浏览器认为它是新资源。比如用版本号做后缀,这样:

 
  1. <script type="text/javascript" src="../scripts/core.js"></script> 
  2. 改为 
  3. <script type="text/javascript" src="../scripts/core.js?115"></script> 

不过缺点也是显而易见的,维护起来太麻烦了,很容易漏,除非你有合适的发布工具来干这件事。

换一个方法,用资源的最后更新时间做后缀,只要写一个公共方法就好了,以ASP.Net为例:

 
  1. <script type="text/javascript" src="<%= UI.Get("../scripts/core.js") %>"></script> 
 
  1. using System; 
  2. using System.IO; 
  3. using System.Web; 
  4.  
  5. namespace Test.WebUI 
  6.     public class UI 
  7.     { 
  8.         public static string Get(string url) 
  9.         { 
  10.             return string.Format("{0}?{1}", url, File.GetLastWriteTime(HttpContext.Current.Server.MapPath(url)).Ticks); 
  11.         } 
  12.     } 

这下终于解脱了。

 




     本文转自 BoyTNT 51CTO博客,原文链接:http://blog.51cto.com/boytnt/1114397,如需转载请自行联系原作者


相关文章
|
3月前
|
存储 缓存 前端开发
从此告别网速慢,轻松掌握浏览器缓存知识点!(二)
从此告别网速慢,轻松掌握浏览器缓存知识点!
|
3月前
|
存储 缓存 前端开发
从此告别网速慢,轻松掌握浏览器缓存知识点!(一)
从此告别网速慢,轻松掌握浏览器缓存知识点!
|
9月前
|
存储 缓存 JSON
印象最深的一个bug:sessionStorage缓存在移动端失效
印象最深的一个bug:sessionStorage缓存在移动端失效
|
10月前
|
Web App开发 数据采集 JavaScript
剑走偏锋,正经程序员都在用的无头浏览器到底有多神奇?
浏览器是再熟悉不过的东西了,几乎每个人用过,比如 Chrome、FireFox、Safari,尤其是我们程序员,可谓开发最强辅助,摸鱼最好的伴侣。 浏览器能干的事儿,无头浏览器都能干,而且很多时候比标准浏览器还要更好 用,而且能实现一些很好玩儿的功能,我们能借助无头浏览器比肩标准浏览器强大的功能,而且又能灵活的用程序控制的特性,做出一些很有意思的产品功能来,稍后我们细说。
|
11月前
|
缓存 前端开发
|
存储 缓存 CDN
浏览器缓存
浏览器缓存
99 0
又见跨域大坑....
又见跨域大坑....
129 0
|
运维 前端开发 Java
一个简单的跨域问题,一不小心就带来三个大大的 BUG
hello 大家好,我是阿粉,最近在做一个前后分离的项目,天天除了跟前端就是跟测试撕逼。今天,阿粉带着大家来了解一下 最近在项目中遇到的一个坑。