.net JS,CSS去缓存绑定版本号的几种方法

缓存问题看似简单,实则影响非常巨大。如果发生了缓存问题,后面的工作量真的不少。比如要处理投诉,要向用户解释,比如教用户怎么清缓存,尤其是很多上了年龄的员工,对计算机概念非常薄弱,稍微严格一点的公司,不允许安装软件,当无法远程协助时候,那个电话描述那个邮件各种截图。几乎上班全部要处理这些事情了。

总而言之,缓存问题要严肃对待,下面进入正题。

 

1.前端页面直接修改

<script src='testJS.js'></script>

 

改为

<script>
var timestamp1 = Date.parse(new Date());
document.write("<script src='testJS.js?v='" + timestamp1 + "><" + '/' + "script>");
</script>

 

2.<script type=”text/javascript“ src=”/js/test.js?v=<%=v%>“></script> 

后端生成v,比较推荐这种方法。

 

因为使用的技术还是webform,所以此时这种写法会存在一个问题,当有部分js,css 是通过后端.cs 吐出绑定的话会编译报错。

var admin = new HtmlGenericControl("script");
admin.Attributes["type"] = "text/javascript";
admin.Attributes["src"] = "../js/admin.js";
Page.Header.Controls.Add(admin);

 

所以这时候我们需要将<%= 替换为 <%#

这样尽管不报错了,但是前端这个值并没有绑定。还需要在.cs 地方添加 Page.DataBind(); 然后才能有值

 

其他

css引用其实存在一个问题

    <link type="text/css" href="test.css<%# strVersion %>"/>

加双引号这样写并不是绑定值了这时候,变成整个都是字符串了。所以解决办法就是把双引号去掉

posted on 2017-05-18 20:09  白发黄鸡  阅读(611)  评论(0)    收藏  举报

导航