方法2. 将图片存到localStorage,用户无感知,缺点是最多存5MB
不知道楼主什么场景浏览器无法自动缓存资源。手动缓存是个很不常规的手段
方法很简单,你把保留网页历史的时间改长而且加大缓存目录的体积就行了,方法就是看浏览器顶部,工具,internet选项,这个界面有历史长度,最多999天,看里面的“设置”,可以改保存网页的路径,以及体积大小。在历史时间内,比如30天,不需要再次缓存页面,但是有个问题,就是你如果在线听歌,看大图片,如果过多,会导致你的IE缓存很庞大,有可能超出你的IE默认的体积,所以你最好转移到非系统分区,而且设置体积很大,1G甚至更大,否则超出后默认删除早期的图片,歌曲,flash等文件。首先…作为吊丝程序员(学生现役)…给几个吊丝的方法。
预加载隐藏
//在预加载的时候,直接读出隐藏的图片$("#blablabla").append($.("#someImg").clone())
$("#blablabla").last().attr("sec",$.load("url~~~",function(){
//做一下隐藏
}))
然后在 一直到某点--》之后…就把原来的图片替换掉。
style的样式…如果还不一样的话……就是自己代码的问题了……
用web Strorage
简单来说…把图片数据流化并且放入web strorage,然后在读取的时候生产图片,并且放入img容器。
304状态是必要的
服务器端和客户端使用Conditional Gets功能验证缓存数据
客户端将条目放在缓存里,在过期之后重新验证。服务器端必须实现Conditional GET功能(使用ETags或者last modified的header)。
JS代码:
$.ajax({url: '/Home/ExpiresWithConditional',
ifModified: true, // 这里是关键
cache: true,
success: function (data, status, xhr) {
$('#content').html(data.count);
}
});
而让服务端响应304状态是确保在图片被修改过以后,能够再返回一个不同的值……
所以……
流量还是不要省了……→_→