项目中对引用的js缓存清理是在引用路径上添加版本号,但这次的问题是母版页的本页面的<script type="text/javascript"></script>中的js有所修改,这个怎么清理缓存?
<script type="text/javascript">
// JavaScript代码,这个浏览器并不会缓存
</script>
应该是缓存了整个这个页面(访问的页面),URL后面加个随机数试下
这个是母版页的js,其他页面是继承的,我怎么找到url?
Layout = "~/Views/Shared/_LayoutTree.cshtml";子页面只要写这个就可以了,我要在这个后面加随机数吗?
但这个后缀是cshtml啊,不是js
@但乱红尘: 访问的页面的URL加个随机数试下
http://Url?t=123
@但乱红尘: 测试下随机数能否解决,不能解决看下是否已更新,更新完成后是否回收应用程序池
@大志若愚: 我知道加随机数,是可以的,但往哪加啊,是往引用母版页这句Layout = "~/Views/Shared/_LayoutTree.cshtml"上加,还是母板页ajax跳转的url上加
@大志若愚: 因为这个问题在我手动清缓存的时候,无法再复现,所以我也不知道在哪里加随机数有效果,但是客户不会手动清缓存,我还是要改
@但乱红尘: 试下模板页面加上下面的内容,或者将JS提取出去,也加上版本号
<HEAD>
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="0">
</HEAD>
@大志若愚: 这个不会造成母版页放弃缓存功能了嘛?对性能是不是不好?提取出来到不失一个好方法
未知缓存刷新最快速
刷新不管用的,需要去清理浏览器的js缓存
不一定非要在前端代码中实现,可以利用http协议中的缓存知识呀,后端就接收到请求之后,在response中设置header信息,让客户端知道缓存的资源已经expired(或者说是old version)。如果能操作服务器,也可以缩短静态资源过期的时间(让客户端已经缓存的资源过期),或者配置静态资源不缓存。之后再将服务器修改回来即可。
只是提供一个想法,具体还得看你想怎么做了
谢谢,提供的思路