localStorage、sessionStorage设置时间

思路:设置本地存储的时候存下当前设置的时间+失效时间,获取的时候判断当前获取的时间是不是大于存下的时间如果是就是失效否则就是有效。如果调用setItem的时候没有传time则一直有效。

//给localStorage||sessionStorage设置时间失效
//storage可以是localStorage||sessionStorage
//key 存储的key(必传)  value 存储的内容(必传)   time 多少分钟后失效(非必传)
//思路:设置本地存储的时候存下当前设置的时间+失效时间,获取的时候判断当前获取的时间是不是大于存下的时间如果是就是失效
//	   否则就是有效。如果调用setItem的时候没有传time则一直有效
class Store{
	constructor(storage) {
		this.storage = storage
	}
	setItem(key, value, time) {
		time = time ? Date.parse(new Date()) + time * 1000 * 60 : null
		let params = {
			value: value,
			time: time ? time : null
		}
		window[this.storage].setItem(key, JSON.stringify(params))
	}
	getItem(key) {
		let params = window[this.storage].getItem(key)
		if (!params) return null
		params = JSON.parse(params)
		if (params.time) {
			if (params.time > Date.parse(new Date)) {
				return params.value
			}
			this.removeItem(key)
			return null
		}
		return params.value
	}
	removeItem(key) {
		window[this.storage].removeItem(key)
	}
	clear() {
		window[this.storage].clear()
	}

}

HTML代码

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>Storage</title>
	</head>
	<body>
	</body>
	<script src="Storage.js" type="text/javascript" charset="utf-8"></script>
	<script type="text/javascript">
		let localStorage=new Store('localStorage')
		let name='张三'
		localStorage.setItem('name1',name)
		console.log(localStorage.getItem('name1'))
		
		
		let sessionStorage=new Store('sessionStorage')
		// let name='张三'
		// sessionStorage.setItem('name1',name,1)
		console.log(sessionStorage.getItem('name1'))
	</script>
</html>

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值