专题 | cookie localStorage 和sessionStorage

补充:超级重要一点

看cookie存储在哪,是f12后的Application--cookies

cookie

cookie是一种存储机制

当我们第一次请求网页内容的时候是没有任何cookie的,服务器在收到请求后会在http响应里添加头部Set-Cookie,并在set-Cookie里进行标识,在下一次请求的时候浏览器就会在http请求里添加头部Cookie,并且用上set-Cookie里的标识。

服务器给set-Cookie后,以后每一次http请求都要把cookie数据传送给服务器,如果每一次都把含有大量数据的Cookie发送给服务器,服务器就会崩溃,因此Cookie设计的很小,不超过4kb

 

localStroage与sessionStroage

随着html5的出现,有了web存储,就有了localStroage与sessionStroage。

当用户第一次请求服务器的时候,服务器响应内容,并附加可操控网页的js,当用户操作进行个人设置的时候,这些个人设置就可以通过web存储机制保护在浏览器里

localStroage会永远保存在浏览器里,可以自行删除,被保存下来,但它不参与服务器通信,localStroage是同步的机制,会影响浏览器的渲染进度

sessionStroage会保存在浏览器里,关闭窗口就会被删除

 案列:localStroage的例子

还有那个绿色圆圈应该是个X号,css效果可以在进一步修改一下!

sessionStroage的例子代码写法与这个一样,把localStroage单词改成sessionStroage就行了,那个例子之后再说吧!

 

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<style>
		body{
			margin: 0;
			padding: 0;
		}
		input{
			margin: 0;
		}
		section{
			width: 300px;
			height:300px;
			background-color: skyblue;
		}
		ul{
			list-style:none;
		}
		span{
			width: 30px;
			height: 30px;
			background-color: green;
			display: block;
			border-radius: 50%;
		}
	</style>
	<body>
		<input type="text"><button>搜索</button>
		<section><ul class="history"></ul></section>
		<!-- <span>11</span> -->
		<button id="btn">吃瓜</button>
		<script>
			const input=document.querySelector('input[type="text"]');
			const button=document.querySelector("button");
			const history=document.querySelector('.history');
			const btns=document.getElementById("btn");
			
			// 防止每次页面刷新页面上的就不见了,也就是新打开的页面数据和之前的页面一致
			if(localStorage.length>0){
				for(let i=0;i<localStorage.length;i++){
					let key=localStorage.key(i);
					let li=document.createElement('li');
					let liText=document.createTextNode(localStorage.getItem(key));
					li.appendChild(liText);
					history.appendChild(li);
					let close=document.createElement('span');
					li.append(close);
					close.addEventListener('click',()=>{
						localStorage.removeItem(key);
						li.parentNode.removeChild(li);
					});
				}
			}
			
			// 把输入的数据添加到下面的蓝色框中
			button.addEventListener('click',()=>{
				if(input.value){
					let key=new Date().valueOf();
					let value=input.value;
					localStorage.setItem(key,value);
					input.value="";
					
					// 把名值对显示在历史记录里面
					let li =document.createElement('li');
					let liText=document.createTextNode(localStorage.getItem(key));
					li.appendChild(liText);
					history.appendChild(li);
					
					// 把添加的内容进行删除
					let close=document.createElement('span');
					li.append(close);
					close.addEventListener('click',()=>{
						localStorage.removeItem(key);
						li.parentNode.removeChild(li);
					})
				}
			})
		</script>
	</body>
</html>

cookie与localStorage与sessionStorage的比较

cookielocalStroagesessionStroage
大小4kb10mb5mb
兼容h4/h5h5h5
访问任何窗口任何窗口同一个窗口
有效期手动设置到窗口关闭
存储位置浏览器和服务器浏览器浏览器
与请求一起发送
语法复制 document.cookie简易简易

参考视频:

cookie、localStorage 和 sessionStorage的区别及应用实例 - JavaScript前端Web工程师_哔哩哔哩_bilibili

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值