store-gem.js
v2.0.7
Published
最全webStorage封装库-支持cookie解决方案
Readme
#store-gem.js
本地存储localstorage/sessionstorage的封装,cookie完美解决方案.
安装
npm
$ npm install store-gem.js --save导入
import store from 'store-gem.js'; // ES6 导入
var store = require('store-gem.js'); // CommonJS规范导入本地存储APIs
var myStore = new store() //可选参数:sessionStorage和localStorage 默认localStorageqmyStore.set(key, data,timeouts); //单个存储字符串数据 timeouts 为过期时间myStore.set({key: data, key2: data2},timeouts); //批量存储多个字符串数据myStore.get(key); //获取key的字符串数据myStore.get(); //获取所有key/datamyStore.get(key1,key2,key3); //获取对应{key: data, key2: data2,key3:data3}对象myStore.has(key) //判断key是否存在myStore.keys() //返回所有key的数组myStore.remove(key) //删除key/datamyStore.remove(key1,key2) //删除key1/data1,key2/data2myStore.clear() //清空所有key/datamyStore.clearExpires() //删除缓存中所有超时值myStore.setTimeout(key,timeouts) //根据key为已存在的(未超时的)缓存值以当前时间为基准设置新的超时时间。myStore.add(key, data, timeouts) //根据key做插入操作,如果key对应的值不存在或者已超时则插入该值,反之什么都不做。myStore.replace(key,data,timeouts) //根据key做插入操作,如果key对应的值存在并且未超时则插入该值,反之什么都不做myStore.each(callback); //循环遍历,返回false结束遍历myStore.length() //返回缓存中key的数量###Constructor 实例化store
var myStore = new store('localStorage'// [可选] 'localStorage', 'sessionStorage', 默认 'localStorage')set
向缓存中插入一条或多条数据
插入单条myStore.set(key, data,timeouts);
//key [必填]必须要为String类型 data [必填] 支持所有类型
//timeouts [选填] 支持Number和Date类型 Number类型单位为秒数
//默认为 new Date('Fri Dec 31 9999 00:00:00 GMT+0800')
插入多条myStore.set({key: data, key2: data2},timeouts);//过期时间相同
myStore.set('a0','name1',200) //a0 ⇒ name1 过期时间200秒后myStore.set('a1','name2') //a1 ⇒ name2 过期时间无限大myStore.set({'a4':'string',a5:['array1',2]},50);//存储两条字符串数据
// a4⇒'string' 过期时间50秒后
// a5⇒['array1',2]过期时间50秒后get
获取key的字符串数据
myStore.get()无参数为获取全部key/data 返回Object对象
myStore.get(key)返回对应data
myStore.get(key1,key2)返回Object {key1: data1, key2: data2}
console.log(myStore.get()); //⇒Object {a0: 'name1', a1: 'name2', a4: 'string', a5: ['array1',2]}console.log(myStore.get('a0')); //⇒name1console.log(myStore.get('a0','a3'));//⇒Object {a0: 'name1', a3: 3}clear
清空所有key/datamyStore.clear()
myStore.clear()remove
删除key包括key的字符串数据
myStore.remove(key)
myStore.remove(key1,key2)
myStore.remove("a0"); //删除a0myStore.remove("a1","a2"); //删除a1,a2keys
返回所有key的数组myStore.keys()
myStore.keys() //⇒["a3", "a4", "a5"]search
搜索所有key中包含string的key/data 返回object对象
搜索方法 myStore.search(string)
myStore.search('key') //⇒ {"key":"keytest","key1":{"a":1},"keyaev":"fff"}has
判断是否存在返回true/falsemyStore.has(key)
myStore.has("a3"); //⇒trueeach
循环遍历,返回false结束遍历
myStore.each(function(key,data){
console.log(key,data)
if (key== 3) return false
})clearExpires
删除缓存中所有通过WebStorageCache存储的超时值
myStore.clearExpires();
###setTimeout 根据key为已存在的(未超时的)缓存值以当前时间为基准设置新的超时时间。设置成功返回true失败返回false。
myStore.setTimeout(key,timeouts);
myStore.setTimeout("a0",500)//设置过期时间为500秒后###add 根据key做插入操作,如果key对应的值不存在或者已超时则插入该值,反之什么都不做。插入成功返回true失败返回false。
myStore.add();
###replace 根据key做替换操作,如果key对应的值存在并且未超时则替换该值,反之什么都不做。替换成功返回true失败返回false。
myStore.replace();
链式书写
myStore.remove('a0','a2').clear().set('a0','name1',200).set('a1','name2').get('a1')兼容
来源:sessionStorage localStorage
| 特性 | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit)| iPhone(IOS) | Android | Opera Mobile | Window Phone | | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | |localStorage|4+|3.5+| 8+ |10.50+|4+| 3.2+ | 2.1+ | 11+ | 8+ | |sessionStorage|5+|2+| 8+ |10.50+|4+| 3.2+ | 2.1+ | 11+ | 8+ |
本地存储大小
JSON.stringify(localStorage).length 当前占用多大容量
