
源码地址: https://github.com/WQTeam/web-storage-cache
WebStorageCache 对 HTML5 localStorage 和 sessionStorage 进行了扩展,添加了超时时间,序列化方法。可以直接存储 json 对象,同时可以非常简单的进行超时时间的设置。
优化:WebStorageCache自动清除访问的过期数据,避免了过期数据的累积。另外也提供了清除全部过期数据的方法:wsCache.deleteAllExpires();
var wsCache = new WebStorageCache(); // 缓存字符串'wqteam' 到 'username' 中, 超时时间 100 秒 wsCache.set('username', 'wqteam', {exp : 100}); // 超时截止日期 2015 5 18 wsCache.set('username', 'wqteam', {exp : new Date('2015 5 18')}); // 获取缓存中 'username' 的值 wsCache.get('username'); // 缓存简单 js 对象,默认使用序列化方法为 JSON.stringify 。可以通过初始化 wsCache 的时候配置 serializer.serialize wsCache.set('user', { name: 'Wu', organization: 'wqteam'}); // 读取缓存中的简单 js 对象 - 默认使用反序列化方法为 JSON.parse 。可以通过初始化 wsCache 的时候配置 serializer.deserialize var user = wsCache.get('user'); alert(user.name + ' belongs to ' + user.organization); // 删除缓存中 'username' wsCache.delete('username'); // 手工删除所有超时 CacheItem, wsCache.deleteAllExpires(); // 清除客户端中所有缓存 wsCache.clear(); // 为已存在的(未超时的)缓存值设置新的超时时间。 wsCache.touch('username', 1); // 如果缓存中没有 key 为 username2 的缓存,则添加 username2 。反之什么都不做 wsCache.add('username2', 'wqteam', {exp : 1}); // 如果缓存中有 key 为 username 的缓存,则替换为新值。反之什么都不做 wsCache.replace('username', 'new wqteam', {exp : 1}); // 检查当前选择作为缓存的 storage 是否被用户浏览器支持。 //如果不支持调用 WebStorageCache API 提供的方法将什么都不做。 wsCache.isSupported(); 1 jsser 2016-06-25 14:37:59 +08:00 谢谢分享,已收藏 |
2 ajan 2016-06-26 09:48:09 +08:00 赞,好东西 |
5 fhefh 2016-06-30 15:59:08 +08:00 nice 收藏~ |