Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/myronliu347/store.js
基于storage开发缓存库
https://github.com/myronliu347/store.js
Last synced: 3 months ago
JSON representation
基于storage开发缓存库
- Host: GitHub
- URL: https://github.com/myronliu347/store.js
- Owner: myronliu347
- License: mit
- Created: 2016-03-06T09:03:33.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2016-12-13T01:19:21.000Z (about 8 years ago)
- Last Synced: 2024-04-25T02:02:56.458Z (9 months ago)
- Language: JavaScript
- Size: 18.6 KB
- Stars: 25
- Watchers: 6
- Forks: 4
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# si-store
![](https://travis-ci.org/myronliu347/store.js.svg?branch=master)
一个基于 Web Storage 的存储库,提供简单的api操作,可以设置缓存时间
## 安装
用 npm 安装
```shell
npm install si-store --save
```直接在 `script` 标签中导入,先要在github 上下载代码,然后:
```html
```
## 开始使用
```javascript
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的存储
```设置过期时间
```javascript
store.set('test', 'test value', 30) // 设置过期时间在30ms之后setTimeout(function () {
store.get('test') // null
}, 31)
```新建一个新的缓存实例
```javascript
var newStore = store.create({
id: 'iStore', // id 必需 每一个存储实例的唯一值
expires: 10 * 1000 * 60, // 默认缓存时间,以毫秒为单位,设为null 不限时间
storage: 'local' // 用那种储存方式, local => localStorage, session => sessionStorage 目前只支持者两种
})
```遍历和清空存储
```javascript
store.clear() //清空当前实例下存储的所有数据
store.forEach(function (value, key) {
console.log(key, value)
}) // 遍历当前实例下存储的所有的数据let allObj = store.getAll() //获取所有存储的数据 返回一个 Object
```## API
### set([key, value, expires])
存储数据
* key 存储数据的key,获取时根据key获取
* value 储存的数据, 不限制类型
* expires 过期时间,不设置默认是永不过期### get([key])
根据 key 获取存储的数据
### remove([key])
删除缓存的数据
### has([key])
判断某一个key 在当前实例下是否存在
### getAll()
获取所有的缓存的数据, 返回一个 Object 对象, 例: {key1: '', key2: ''}
### clear()
清除当前实例下存储的所有的数据
### forEach([callback])
遍历当前实例下存储的所有数据
* callback function 遍历的回调函数 例:store.forEach(function (value, key) { // ... })
### create([options])
创建一个新的存储实例, 只有全局 store才具有的方法。
options 是一个 Object, 支持以下参数
* id 必须,当前实例的id,唯一值不可重复
* expires 默认过期时间
* storage 存储方式 'local'/'session' 默认是 'local'## 下一步要做的
* 支持存储数量的限制
* 支持多个key的get
* 支持异步的storage 例如 indexDB 这些的支持## License
[MIT](http://opensource.org/licenses/MIT)
Copyright (c) 2016 myron