javaScript之本地存储

Pink老师整理

 

 

随着互联网的快速发展,基于网页的应用越来越普遍,同时也变的越来越复杂,为了满足各种各样的需求,会经 常性在本地存储大量的数据,HTML5规范提出了相关解决方案。 

本地存储特性 

  1. 数据存储在用户浏览器中 
  2. 设置、读取方便、甚至页面刷新不丢失数据 
  3. 容量较大,sessionStorage约5M、localStorage约20M 
  4. 只能存储字符串,可以将对象JSON.stringify() 编码后存储 

 

window.sessionStorage 

  1. 生命周期为关闭浏览器窗口 
  2. 在同一个窗口(页面)下数据可以共享 
  3. 以键值对的形式存储使用 
sessionStorage.setItem(key, value)        //存储数据

sessionStorage.getItem(key)                //获取数据

sessionStorage.removeItem(key)        //删除数据

sessionStorage.clear()        //删除所有数据

 

window.localStorage 

  1. 声明周期永久生效,除非手动删除 否则关闭页面也会存在 
  2. 可以多窗口(页面)共享(同一浏览器可以共享) 
  3. 以键值对的形式存储使用 
localStorage.setItem(key, value)        //存储数据

localStorage.getItem(key)                //获取数据

localStorage.removeItem(key)        //删除数据

localStorage.clear()        //删除所有数据

当想存储对象类型数据时,要使用JSON.stringify()进行转换成字符串类型数据

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <script src="js/jquery.min.js"></script>
</head>

<body>
    <script>
        var todolist = [{
            title: '我今天吃八个馒头',
            done: false
        }, {
            title: '我今天学习jq',
            done: false
        }, ];
        // localStorage.setItem("todo", todolist);
        // 1. 本地存储里面只能存储字符串的数据格式 把我们的数组对象转换为字符串格式 JSON.stringify()
        localStorage.setItem("todo", JSON.stringify(todolist));
        var data = localStorage.getItem("todo");
        // console.log(typeof data);
        // console.log(data[0].title);
        // 2. 获取本地存储的数据 我们需要把里面的字符串数据转换为 对象格式 JSON.parse()
        data = JSON.parse(data);
        console.log(data);
        console.log(data[0].title);
    </script>
</body>

</html>

记住用户名案例

<!DOCTYPE html>
<html lang="en">

	<head>
		<meta charset="UTF-8">
		<meta name="viewport" content="width=device-width, initial-scale=1.0">
		<meta http-equiv="X-UA-Compatible" content="ie=edge">
		<title>Document</title>
	</head>

	<body>
		<input type="text" id="username"> <input type="checkbox" name="" id="remember"> 记住用户名
		<script>
			var username = document.querySelector('#username');
			var remember = document.querySelector('#remember');
			remember.addEventListener('change', function() {
				if (this.checked) {
					localStorage.setItem('uname', username.value);
				} else {
					localStorage.removeItem('uname');
				}
			});
			if (localStorage.getItem('uname')) {
				username.value = localStorage.getItem('uname');
				remember.checked = true;
			}
		</script>
	</body>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值