一个基于 Web Storage 的存储库,提供简单的api操作,可以设置缓存时间
用 npm 安装
npm install si-store --save
直接在 script
标签中导入,先要在github 上下载代码,然后:
<script src="si-store.js" charset="utf-8"></script>
import store from 'si-store' // ES6 可以这么写
var store = require('si-store') // commonJs 规范写法
// 如果是script 标签引入的可以不用管,直接使用store对象即可
store.set('test1', 'this is value') // 存储字符串
store.set('test2', {
key: 'this is test'
}) // 也可以存储对象
store.get('test1') // 获取存储的值 this is value
store.remove('test2') // 删除key为 test2的存储
设置过期时间
store.set('test', 'test value', 30) // 设置过期时间在30ms之后
setTimeout(function () {
store.get('test') // null
}, 31)
新建一个新的缓存实例
var newStore = store.create({
id: 'iStore', // id 必需 每一个存储实例的唯一值
expires: 10 * 1000 * 60, // 默认缓存时间,以毫秒为单位,设为null 不限时间
storage: 'local' // 用那种储存方式, local => localStorage, session => sessionStorage 目前只支持者两种
})
遍历和清空存储
store.clear() //清空当前实例下存储的所有数据
store.forEach(function (value, key) {
console.log(key, value)
}) // 遍历当前实例下存储的所有的数据
let allObj = store.getAll() //获取所有存储的数据 返回一个 Object
存储数据
- key 存储数据的key,获取时根据key获取
- value 储存的数据, 不限制类型
- expires 过期时间,不设置默认是永不过期
根据 key 获取存储的数据
删除缓存的数据
判断某一个key 在当前实例下是否存在
获取所有的缓存的数据, 返回一个 Object 对象, 例: {key1: '', key2: ''}
清除当前实例下存储的所有的数据
遍历当前实例下存储的所有数据
- callback function 遍历的回调函数 例:store.forEach(function (value, key) { // ... })
创建一个新的存储实例, 只有全局 store才具有的方法。
options 是一个 Object, 支持以下参数
- id 必须,当前实例的id,唯一值不可重复
- expires 默认过期时间
- storage 存储方式 'local'/'session' 默认是 'local'
- 支持存储数量的限制
- 支持多个key的get
- 支持异步的storage 例如 indexDB 这些的支持
Copyright (c) 2016 myron