记录生活中的点滴,分享、学习、创新
最近项目中要求再网页中插入一张gif图片,让用户每次到达该位置时动一次,所以我们就制作了一张只动一次的gif图片通过img标签引入。当用户进入该位置时,通过remove()清除图片然后重新append()进来,并没有效果。然后又尝试了attr()方法变化src的位置,都没有效果。这时候就想到是浏览器缓存的问题,图片进入浏览器就只加载一次,只能浏览器就会拿住图片缓存。这也是浏览器提高页面访问速度的一种方式了,这时候为了实现我们的目标,就要想办法清除掉这个缓存。
方法1、使用CTRL+F5进行强制刷新。当然,我们开发者怎么能让用户自己去刷新呢,pass。
方法2、在图片img标签src参数加上随机数,如下:
//这里用的是jQuery的方法
<script>
var imgText = `<img src="myimage.gif?+${Math.random()}" />`
$(".imgLocation").append(imgText);
<script/>
方法3、在图片img标签src参数加上毫秒时间戳,如下:
//这里用的是jQuery的方法
//时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的
总秒数。这里getTime得到的是毫秒数,时间戳是秒数,值得注意
<script>
var imgText = `<img src="myimage.gif?+${new Date().getTime()}" />`
$(".imgLocation").append(imgText);
<script/>
方法4、meta设置no-cache
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache, must-revalidate">