浏览器出于性能考虑,对js/css一类的静态资源,并不是每次都向服务器询问此资源是否有更新,各位一定都有这样的经历:明明服务器上的脚本更新了,但抓包发现浏览器根本没有发请求询问,直接就使用了本地的缓存,结果导致蹦了脚本错误提示,非要F5甚至Ctrl+F5强制刷新一下才好。
专业成都网站建设公司,做排名好的好网站,排在同行前面,为您带来客户和效益!成都创新互联公司为您提供成都网站建设,五站合一网站设计制作,服务好的网站设计公司,成都做网站、网站制作负责任的成都网站制作公司!
页面我们可以强制浏览器不缓存,但资源不受我们控制,目前可行的方法就是加后缀,每次资源有更新时就变换这个后缀,让浏览器认为它是新资源。比如用版本号做后缀,这样:
- <script type="text/javascript" src="../scripts/core.js"></script>
- 改为
- <script type="text/javascript" src="../scripts/core.js?115"></script>
不过缺点也是显而易见的,维护起来太麻烦了,很容易漏,除非你有合适的发布工具来干这件事。
换一个方法,用资源的最后更新时间做后缀,只要写一个公共方法就好了,以ASP.Net为例:
- <script type="text/javascript" src="<%= UI.Get("../scripts/core.js") %>"></script>
- using System;
- using System.IO;
- using System.Web;
- namespace Test.WebUI
- {
- public class UI
- {
- public static string Get(string url)
- {
- return string.Format("{0}?{1}", url, File.GetLastWriteTime(HttpContext.Current.Server.MapPath(url)).Ticks);
- }
- }
- }
这下终于解脱了。
新闻名称:讨厌的浏览器缓存
文章地址:https://www.cdcxhl.com/article10/ihhego.html
成都网站建设公司_创新互联,为您提供网站改版、虚拟主机、营销型网站建设、关键词优化、静态网站、做网站
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联