目录
前言
问题描述:当我们在网页上传修改图片,或者开发过程修改css,js文件后,没有效果。
原因:在加载这些数据时,网页进行了缓存。当数据变化时,网页使用的仍然是缓存的数据。所以效果未发生变化。
解决方法:给src或href的值改变为不一样的值。通过添加参数v=随机数。
原理:因为所带参数不同,那么每次访问时的地址都不同,故浏览器每次都会重新加载并缓存。
下文具体步骤分析
一.问题展示
想直接看解决方法演示的请跳到最后
1.图片修改后无效果:
原图片:
修改上传别的图片:
这里我上传了一个白色背景的图片
上传后效果:
发现没有任何变化 。
2.修改css/js文件无效果
css文件里的一个样式,导航栏的导航链接
修改前:
修改后:将color改变为了red,发现导航栏超链接颜色并未发生变化
二.解决方法演示
*代码描述:在jsp中使用java脚本来获取到一个随机数random,并设置为请求域的变量。然后在img, js,css引入的属性src或href值的后面加上参数?v = ${random}
<%
String random = Math.random()+"";
request.setAttribute("random",random);
%>
css引入,js引入同理
<link href="../css/listCategory.css?v=${random}" rel="stylesheet">
图片img
<img height="30px" src="../img/category/${c.id}.jpg?v=${random}">
重新进行一次上述的修改操作,得到:
都发生了更新。
原理:因为所带参数不同,那么每次访问时的地址都不同,故浏览器每次都会重新加载并缓存。
总结
问题产生原因:在加载这些数据时,网页进行了缓存。当数据变化时,网页使用的仍然是缓存的数据。所以效果未发生变化。
解决方法:给src或href的值改变为不一样的值。通过添加参数v=随机数。
原理:因为所带参数不同,那么每次访问时的地址都不同,故浏览器每次都会重新加载并缓存。