阿里云存储如何让浏览器始终以200 (from cache)缓存图片?
阿里云存储如何让浏览器始终以200 (from cache)缓存图片?
关注者
166被浏览
21,425登录后你可以
不限量看优质回答私信答主深度交流精彩内容一键收藏
通过大家的回答和我自己的实验发现(Chrome上),对于阿里云的云存储,加大Cache-Control的max-age是有效的,这点我之前也试过,但是像
@yuanyuanVivian说的,是在输入URL按下回车时有效,直接刷新时图片还是无法直接加载缓存,而且无法禁用阿里云存储Etag,但是事实上,还有一种方式可以让浏览器直接使用200 OK (form cache)缓存,那就是在其它元素都加载完时通过js插入图片或设置背景图片。在jquery里就是$(window).load()的时候。
$(window).load(function() {
var bg='http://img.infinitynewtab.com/wallpaper/100.jpg';
setTimeout(function() {
$('#bgOut').css('background-image', 'url('+bg+')');
},0);
});
其中setTimeout(xxx,0)是必须的,没有这句还是会以304 Not Modified 的方式缓存
而用上之后:
另外在DOM加载时将setTimeout的时间设置大一点也是可以的,但是你无法判断在不同的环境下这个时间是多少。
我写了个页面大家可以用Chrome浏览器来测试一下是不是这样:
Test结果截图:
即使用强制刷新,图片也可以直接读取缓存了。
PS.测试不充分,仅Windows Chrome 版本 41.0.2272.89 m