浏览器缓存js文件导致提交不正确或是页面无变化的问题

本文介绍了一种在项目中遇到的JS缓存问题,详细解释了如何通过在URL中添加随机数参数或版本号控制来避免浏览器缓存,确保JS更新能够立即生效。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

项目里有个需求是在页面新加了一个选框(本人使用的下拉框,如下图),在js里获取到字段值并赋值给相应的java对象,然后传到service层、dao层,最后入库。
图1
由于浏览器有缓存,我修改的js并没有被加载,存库的时候新增的字段是null,也就是提交的时候js没有获取到值。浏览器会默认的缓存一些文件,如css、js、图片资源等,就是为了更快的响应页面。缓存机制是根据资源的URL来判断的,如果URL对应在本地的缓存资源有的话,就加载本地的资源,没有再去请求。
如果不想让浏览器缓存这些资源的话,可以在引入的时候,添加随机数参数或版本号控制,使请求的URL发生变化。修改方法如下:
1.添加随机数字
如:url="/generateFile/?activityType=" + activityType + “&t=” + Math.random()
缺点就是浏览器缓存失去意义,每次都动态加载
2.使用meta标签控制不缓存(html头信息)
如:

<meta http-equiv="expires" content="0">  
<meta http-equiv="pragma" content="no-cache">  
<meta http-equiv="cache-control" content="no-cache">

缺点这样所有的js 文件都不会被缓存。(这显然是不可取的,不建议使用)
3.根据版本号控制
设置全局变量,每次发布前版本号加1,url="/generateFile/??v=<%=v%>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值