网页中通过js修改img的src属性刷新图片时,图片缓存问题现象表述及问题解决
问题:做图片更新功能时,后台图片已改变,但img的 src当前的url与上次地址无变化,即使页面重新load,页面所展现的图片也不变化,仍显示原来的图片。网上找的原因,当src的地址不变时浏览器不会重新加载图片,而是仍从缓存里面读取。
方法:只需每次刷新图片时,改变一下src的地址内容就行了,(1)通过前台变化,让js每次生成一个随机数作参数放在url后边,但该参数没有实际意义。 (2) 每次请求到该图片页面时,从后台传一个随机数,前台获得该随机变量并放在url后边,该随机数也没有什么实际意义。
原理:
由于在img的src中增加了随机数参数,多次访问图片时,浏览器认为是访问了不同的图片路径(或者说是访问了不同的图片),浏览器会每次重新访问服务器读取图片,而不再读取缓存中的图片。
解决:修改我的JSP页面代码如下,加上个随机的参数,OK搞定。
<img src="${st.imgsrc}?ran=<%=Math.random()%>" />