genius-storage使用文档(由本人开发,希望各位批评指正!谢谢大家!)
A user-friendly browser cache tool 个人博客地址 NPM文章地址 GitHub源码及文档地址
genius-storage 是一个扩展性较好、易上手、统一操作浏览器的 localStorage 、sessionStorage 、cookie 的JavaScript工具库。
一、安装
- 1、到GitHub源码地址下载
static 目录下的GStorage.js 文件, 通过 script 标签引入
<script src="GStorage.js" > </script>
<script>
const gCookie = GStorage('cookie',{prefix:'key_prefix', suffix:'key_suffix'})
gCookie.setFun('gcookie_key',1)
gCookie.getFun('gcookie_key')
</script>
- 2、提供一个在线地址供大家测试时使用,但是这个方法不建议长期使用,因为我的云服务器过期了,这个就用不了啦!
<script src="https://api.geniusman.top/cdn/genius-storage/GStorage.js" > </script>
<script>
const gCookie = GStorage('cookie',{prefix:'key_prefix', suffix:'key_suffix'})
gCookie.setFun('gcookie_key',1)
gCookie.getFun('gcookie_key')
</script>
npm install genius-storage
项目使用
import { GStorage } from "genius-storage";
const gLocal = GStorage('local')
gLocal.setFun('key',{value:1})
gLocal.getFun('key')
二、具体使用
1.可以创建的类型有3种
const gLocal = GStorage('local',options)
- 2、创建
sessionStorage 的操作实例
const gSession = GStorage('session',options)
const gCookie = GStorage('cookie',options)
2、通用的配置属性 options
let options = {
prefix: 'prefix',
suffix: 'suffix',
linkSign: '.',
isReset: true,
expireTime: -1,
typeTime: 'ms',
}
- 2、配置属性都是可选参数,你可以传0个或者多个属性;甚至不传该参数,那么它将自动使用自身的默认值
const gCookie = GStorage('cookie')
const gCookie = GStorage('cookie',{})
const gCookie = GStorage('cookie',{prefix:'java'})
const gCookie = GStorage('cookie',{prefix:'java',suffix:'script',linkSign:'@'})
- 3、可以在创建实例后,在对其配置属性进行修改(但是非常不建议该操作,具体使用看情况)
_instance: Storage {length: 0} ===> 实例 (这个不能改,改错了就完犊子了)
_instanceType: "local" ===> 实例类型 (这个也不能改,改错了就也可能完犊子)
_expireTime: -1 ===> 过期时间 (可以改,但是类型必须是——number)
_isReset: true ===> 是否可以重置数据标识 (可以改,但是类型必须是——number)
_linkSign: "." ===> 前后缀连接符号 (可以改,但是类型必须是——string)
_prefix: "" ===> 前缀符号 (可以改,但是类型必须是——string)
_suffix: "" ===> 后缀符号 (可以改,但是类型必须是——string)
_typeTime: "ms" ===> 过期时间单位 (可以改,但是类型必须是——string)
修改方式:【实例】【.】【属性】【=】【值】
const gCookie = GStorage('cookie',{prefix:'java'})
gCookie._prefix = "node"
- 4、配置属性——
typeTime 具体有哪些单位,默认单位:毫秒(ms)
毫秒(ms) —— 默认单位
秒(s) —— 【expireTime = expireTime * 1000】
分(min) —— 【expireTime = expireTime * 60 * 1000】
时(h) —— 【expireTime = expireTime * 60 * 60 * 1000】
天(d) —— 【expireTime = expireTime * 864e5】
周(w) —— 【expireTime = expireTime * 7 * 864e5】
月(m) —— 【expireTime = expireTime * 30 * 864e5】
年(y) —— 【expireTime = expireTime * 365 * 864e5】
所以typeTime的单位可以是 = 'ms' | 's' | 'min' | 'h' | 'd' | 'w' | 'm' | 'y'
所以typeTime 的单位可以是 = ‘ms’ | ‘s’ | ‘min’ | ‘h’ | ‘d’ | ‘w’ | ‘m’ | ‘y’ ;
这里的一个月我规定为30天,一年为365天;并没有去动态计算当前时间到下个月或者明年的这一天,时间段内具体有多少天,这个我认为太复杂了,大家可以给我提点建议。
3、目前可以使用的方法有哪些
目前实例统一可以调用的方法有:setFun 、getFUn 、existFun 、delFun 、allKey 、 clearFun 6个方法
3.1、 setFun (key, value, isReset?, expireTime?, typeTime?)
简要说明:该方法可以存储新的 or 覆盖旧的缓存数据,可以额外设置过期缓存过期时间;无返回值。
key: string ===> 必传参数
value: any ===> 必传参数,如果是undefined,会被赋值为空字符串
isReset: boolean ===> 可选参数,默认为true,代表遇到相同key标识的值时,可以直接覆盖旧数据,false则不覆盖
expireTime: nummber ===> 可选参数,默认-1,代表不设置过期时间,只有当【expireTime > 0】 时才会设置过期时间
typeTime: string ===> 可选参数,默认ms,代表过期时间的基本单位,可以设置其他单位来进行时间换算
使用示例:
const gLocal = GStorage('local',options)
gLocal.setFun('key',{value:'666'})
gLocal.setFun('key',{value:'666'},false)
gLocal.setFun('key',{value:'666'},false,3000)
gLocal.setFun('key',{value:'666'},true,3, 'm')
3.2、 getFun (key)
简要说明:该方法用于获取已经存储的缓存值,如果有效时间过期 or 没有查询到对应的值,则返回undefined 。
key: string ===> 必传参数
return value:any | undefined
使用示例:
const gLocal = GStorage('local',options)
gLocal.setFun('key1',{value:'666'})
gLocal.setFun('key2',{value:'666'},false,3000)
setTimeout(() => {
gLocal.getFun('key1')
gLocal.getFun('key2')
},4000)
3.3、 existFun (key)
简要说明:该方法用于判断是否存在一个有效的缓存值,有效返回true ,反之false 。
key: string ===> 必传参数
return true | false
使用示例:
const gLocal = GStorage('local',options)
gLocal.setFun('key1',{value:'666'})
gLocal.setFun('key2',{value:'666'},false,3000)
setTimeout(() => {
gLocal.existFun('key1')
gLocal.existFun('key2')
},4000)
3.4、 delFun (key)
简要说明:该方法就是用来删除对应key 唯一标识的缓存值,无返回值。
key: string ===> 必传参数
使用示例:
const gLocal = GStorage('local',options)
gLocal.setFun('key1',{value:'666'})
gLocal.setFun('key2',{value:'666'},false,3000)
setTimeout(() => {
gLocal.delFun('key1')
gLocal.delFun('key2')
gLocal.delFun('key3')
},4000)
3.5、 allKey (conditions?)
简要说明:该方法就是用来获取浏览器所有在有效期内的key 值,你可以根据配置参数来筛选这些keys ,它会以一个数组的形式返回给你
conditions: object ===> 可选参数
conditions: {
prefix:'前缀',
suffix:'后缀',
linkSign:'连接符号'
}
return string[]
使用示例:
const gLocal = GStorage('local')
gLocal.setFun('key1',{value:'666'})
gLocal._prefix = 'java'
gLocal.setFun('key2',{value:'666'})
gLocal._suffix = 'script'
gLocal.setFun('key3',{value:'666'})
gLocal._linkSign = '#'
gLocal.setFun('key4',{value:'666'})
gLocal.allKey()
gLocal.allKey({prefix:'java'})
gLocal.allKey({prefix:'java',linkSign:'.'})
gLocal.allKey({prefix:'java',linkSign:'.',suffix:'script'})
3.6、 clearFun (conditions?)
简要说明:该方法就是用来清除浏览器所有在有效期内的key 值对应的缓存,你可以根据配置参数来筛选你要清除的缓存,该方法无返回值。
conditions: object ===> 可选参数
conditions: {
prefix:'前缀',
suffix:'后缀',
linkSign:'连接符号'
}
三、一些注意事项
- 过期时间对于
sessionStorage 类的缓存来说,作用不大,因为浏览器关闭就会原地去世。 - 过期时间对于
cookie 类的缓存来说, 如果不设置过期时间(此时属于会话缓存,浏览器关闭就去世), 只有设置了过期时间才是本地缓存(只有手动删除或者过期时间到了自动失效) - 配置参数属性、或者传参时,需要数据类型与规定一致,不然可能导致我给你一个黄色警告或者红牌警告。
- 这里着重说明一下参数
key 的一些规范
1、key值的类型必须是一个string(字符串类型) || 如果犯规 ===> 红色错误警告
2、key值不能是一个空字符串 || 如果犯规 ===> 红色错误警告
3、key值不能包含空格或者制表符tab || 如果犯规 ===> 黄色警告
4、key值不能是一个空字符串、null、undefined || 如果犯规 ===> 黄色警告
…后续完善中!
|