24(本地存储)localStorage&sessionStorage

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<meta name="viewport" content="width=device-width, initial-scale=1">
	<title>localStorage&sessionStorage</title>
</head>
<body>
	<!-- 支持性检测 
		
	-->
	<script type="text/javascript" src="../time.js"></script>
	<script type="text/javascript">
		var day = -2;
		console.dir(window);
		if (typeof Storage != 'undefined') {
			console.log('支持')
		} else {
			console.log('不支持')
		}

		// 客户端 存储数据有两个对象: localStorage  sessionStorage

		/*
			localStorage: 能够长久保存整个网站(同源)的数据, 没有过期时间, 需要手动去除
				删除缓存: Ctrl + shift + del
				强制刷新浏览器: Ctrl + shift + R
				数据存储形式: 键值对, key: value

				存储数据的大小: 5120KB 5M
		*/
		localStorage.token = '123';
		console.log(localStorage.token);

		var userInfo = {
			name: '李明',
			age: 18,
			gender: 1,
			tel: 18977887766,
			avatar: 'http://www.baidu.com'
		}
		var studentsArr = ['李明', '李亮', '李红'];
		var studentsObj = {value: studentsArr, expireTime: '2022-06-02'};
		localStorage.setItem('Authorization', '456');
		console.log(localStorage.getItem('Authorization'));

		// 注意: 复杂数据类型一定要转成字符串形式
		localStorage.user = JSON.stringify(userInfo);
		localStorage.students = JSON.stringify(studentsObj);
		// localStorage.students = studentsObj;
		localStorage.age = {value: 18.2, expireTime: '2022-07-02'};

		// console.log( JSON.parse(localStorage.students).students);
		console.log('-------', getStorageValueByKey('students'));
		// console.log('-------', localStorage.getItem('students'));

		localStorage.removeItem('token');


		// localStorage.getItem(key);
		function getStorageValueByKey(key) {
			// 解析本地存储中的对象
			var obj = JSON.parse(localStorage.getItem(key));

			if (obj.expireTime) {
				console.log(getNormalDate(obj.expireTime));
				if (new Date().getTime() > obj.expireTime) {
					// 如果过期时间已经过了,从本地存储中移除对应的项
					localStorage.removeItem(key);
					return null
				}
				return obj.value
			} else {
				return obj.value
			}
		}


		// localStorage.setItem(key)
		setStorageValueByKey('students2', ['李明', '李亮', '李红'])
		function setStorageValueByKey(key, value) {
			var expireTime = Date.now() + 24 * 60 * 60 * 1000 * day;
			var obj = {
				value: value,
				expireTime: expireTime
			}
			localStorage.setItem(key, JSON.stringify(obj));
		}
		console.log(getStorageValueByKey('students2'));


		// sessionStorage: 临时保存同一窗口或者标签页的数据,在关闭窗口或者标签页之后,将会自动删除这些数据
		// sessionStorage.getItem(key); sessionStorage.setItem(sessionStorage)
		// sessionStorage.removeItem(sessionStorage)
	</script>
</body>
</html>

上述运行结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

七色的天空

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值