项目场景
今天要用
python
的
flask
框架做一个简单的
demo
网站。
问题描述
我的
index.html
文件中有一行代码:
<img id='input' src='input.jpg'/>
然后我需要通过
js
代码来更新
src
属性:
$("#input").attr('src', 'input.jpg')
但如果新的
src
属性值和原属性值相同时,发现图片并不会更新。
这里你可能会问,既然要更新src属性,为什么新的属性值还是和原来一样?其实是有这种需求的。比如一张名为a.jpg的图片,经过一系列的操作处理后,我需要保存,保存方式选择覆盖原图,那么保存后的图片不还是a.jpg嘛,虽然我们知道这个a.jpg和原来的a.jpg已经不是同一张图片了,但是浏览器中的html的img标签并不知道,因为图片名字并没有变化。
原因分析
推测可能是浏览器中的缓存机制造成的。虽然图片的内容改变了,但图片名字没有改变,浏览器中的
html
中的
img
标签没有检测到
src
属性值的变化,还是用的还是之前的缓存。
解决方案
在修改
img
的
src
属性的时候加上一个随机数即可,让浏览器以为每次请求的图片路径都不同,这样就能加载新的图片,而不是缓存。
$("#input").attr('src', 'input.jpg''?'+Math.random())
引用参考