localStorage、sessionStorage、cookie

方法名生命周期存储大小
cookie未设置日期,浏览器关闭之前生效4kB
sessionStorage浏览器关闭之前生效5M
localStorage永久生效5M
1、定义
HTML5 web存储,一个比cookie更好的本地存储方式,可以用于客户端的本地存储。
2、客户端存储分类
客户端存储数据的两个对象为localStorage和sessionStorage、cookie.
- localStorage:用于长久保存整个网站的数据,保存的数据没有过期时间,除非手动清除。
- sessionStorage:用于临时保存同一窗口或tab标签页的数据,在关闭窗口或tab标签页之后,数据将会被删除。
- cookie:
    用于存储用户数据,设置cookie时,有的浏览器必须是访问服务器上的网页才可以设置;
    cookie本身具有实效性,在一定的时间间隔内会过期;
    过期方式:
        1>、在没有给cookie设置过期时间时,会立即过期;
        2>、在浏览器关闭的时候过期;
3、操作方法
localStorage.setItem(key, value):保存数据
localStorage.getItem(key):获取数据
localStorage.removeItem(key):删除单个数据
localStorage.clear():清除所有数据
localStorage.key(index):获取某个索引的key
4、存储方式的区别
cookie、localStorage、sessionStorage这三种方式存储数据都保存在浏览器端,且是同源的。
  # 区别
(1)存储大小:
    web存储比cookie存储量更大,web存储的数据量为5M,而cookie的最大数据量只能达到4KB;
(2)安全性:
    cookie向后台发送http请求时会出现在http头部;
    cookie始终在同源的http请求中携带,即在浏览器和服务端之间来回传递;
    HTML5本地存储不会自动把数据发给服务器,仅在本地保存,节约了宽带,缩短了请求和响应的时间。
(3)生命周期:
    localStorage:保存的数据始终有效,即使窗口或者浏览器关闭之后,也会一直保存,永久有效,除非手动清除;
    sessionStorage:只有在浏览器关闭之前数据有效,关闭之后,数据会自动清除,生命周期较短;
    cookie:只在设置的cookie过期时间之前一直有效,即使窗口或者浏览器关闭
(4)作用域:
    localStorage:在所有同源窗口中共享,在当前页面存储,可以在另一个页面中获取相关数据;
    sessionStorage:不可以在不同的浏览器窗口中共享,即使是同一个页面;
    cookie:在所有同源窗口中共享;
(5)事件通知:
    web storage支持事件通知机制,可以将数据更新的通知发给监听者
5、应用实践
  【cookie】
/* cookie的设置和获取 */
var cookie = document.cookie;// 获取cookie
document.cookie = "key1=value1;key2=value2";// 设置cookie

/*cookie只能保存有限的依稀数据,不安全,保存在客户端*/
document.cookie="name=zhangsan";
alert(document.cookie);

/*永久的保存在客户端,比较安全*/
localStorage.setItem("name","王晓朦");
alert(localStorage.getItem("name"));

/*与coookie类似,生存周期就是在浏览器打开的时候*/
sessionStorage.setItem("name","岚岚");
alert(sessionStorage.getItem("name"));
  【localStorage】
姓名:<input type="text" name="names" /><br />
密码:<input type="password" name="pwd" /><br />
记住用户信息:<input type="checkbox" name="check" id="check" />
<!--具体实现-->
<script>
    /*
     * 1、获取所有表单信息
     * 2、判断复选框的选中状态
     * 3、获取输入的用户名和密码,将复选框的值设置为true*/
    /*在将name表单的name值设置为name时,出现错误,在以后的实现过程中,注意name值的设置*/
    var names = document.getElementsByName("names")[0];
    var pwd = document.getElementsByName("pwd")[0];
    var check = document.getElementsByName("check")[0];
    
    if (localStorage.getItem("names") && localStorage.getItem("pwd")){
        names.value = localStorage.getItem("names");
        pwd.value = localStorage.getItem("pwd");
        alert(pwd.value);
        check.checked = true;
    }
    check.onclick = function () {
        if (check.checked){
            localStorage.setItem("names", names.value);
            localStorage.setItem("pwd", pwd.value);
        } else {
            localStorage.removeItem("names");
            localStorage.removeItem("pwd");
        }
    }
</script>
  【sessionStorage】
标题:<input type="text" name="title" />
内容:<textarea name="content"></textarea>
<input type="button" value="提交" name="submits"/>
<script>
    var title = document.getElementsByName("title")[0];
    var content = document.getElementsByName("content")[0];
    var submits = document.getElementsByName("submits")[0];

    if (sessionStorage.title || sessionStorage.content){
        title.value = sessionStorage.title;
        content.value = sessionStorage.content;
    }
    submits.onclick = function(){
        sessionStorage.title = title.value;
        sessionStorage.content = content.value;
    }
</script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值