localStorage sessionStorage 是windows的对象
1.cookie
在浏览器和服务器端来回传递数据,而localStorage
和sessionStorage
不会自动把数据发送给服务器,仅会保存在本地。cookie
会在浏览器请求头或者ajax
请求头中发送cookie
内容。
2.cookie
可以设置过期日期,sessionStorage
是会话级的数据,浏览器窗口关闭即清楚,localStorage
是永久性的数据,一旦赋值,不管多长时间这值都是存在的,除非手动清除。
3.cookie
的存储大小受限制,一般不超过4k,而localStorage
和sessionStorage
的存储大小一般不超过5M
,大大提高了存储的体积。
4.sessionStorage
不跨窗口,在另外一个窗口打开sessionStorage
就不存在了,它只在当前窗口有效,而cookie
和localStorage
都是跨窗口的,即使浏览器的窗口关闭,这两个值还是存在的。
使用场景:
localStorage
可以用来统计页面访问次数。
sessionStorage
可以用来统计当前页面元素的点击次数。
cookie
一般存储用户名密码相关信息,一般使用escape转义
编码后存储。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<label>
<input type="text" id="text">
<button id="btn">save</button>
<script>
window.onload = function () {
var text = document.getElementById('text');
var btn = document.getElementById('btn');
if (localStorage.getItem('text')) {
text.value = localStorage.getItem('text');
}
btn.onclick = function () {
var t = text.value;
localStorage.setItem('text',t);
}
}
</script>
</label>
</body>
</html>