存储

//本地存储: 只能存储字符串,可以将对象JSON.stringify() 编码后存储

<!-- 1.window.sessionStorage-->
1、生命周期为关闭浏览器窗口
2、在同一个窗口(页面)下数据可以共享
3、以键值对的形式存储使用

sessionStorage.setItem(key, value)  //存储数据
sessionStorage.getItem(key)  //获取数据
sessionStorage.removeItem(key)  //删除数据
sessionStorage.clear()  //清空数据

<!-- 2.window.localStorage -->
1、生命周期永久生效,除非手动删除 否则关闭页面也会存在
2、可以多窗口(页面)共享(同一浏览器可以共享)
3.  以键值对的形式存储使用

localStorage.setItem(key, value)  //存储数据   key是名称,value是值
localStorage.getItem(key)  //获取数据
localStorage.removeItem(key)  //删除数据
localStorage.clear()  //清空数据:(所有都清除掉)

<!-- 3.cookie和session -->
当一个session第一次被启用时,一个唯一的标识被存储于本地的cookie中。
session
    页面重启时session对象失效,也就是cookie信息失效
    1.是前端登录后服务器立即创建的存储数据
    2.session数据放在服务器上。
    3.session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能,
        考虑到减轻服务器性能方面,应当使用cookie。

cookie
    cookie信息会随着请求自动发送到服务端进行身份验证
    格式:"name=value; expires=evalue; path=pvalue;"
    1.是服务器响应过来的页面存储信息
    2.cookie数据存放在客户的浏览器上
    3.cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗,考虑到安全应当使用session。

    function getCookie(cookieName) {
        var strCookie = document.cookie;
        var arrCookie = strCookie.split("; ");
        for(var i = 0; i < arrCookie.length; i++){
            var arr = arrCookie[i].split("=");
            if(cookieName == arr[0]){
                return arr[1];
            }
        }
        return "";
    }
    var access_token = getCookie("user_accesstoken") //获取cookie指定字段参数

    <!-- 存储key值 -->
    d.setTime(d.getTime() + (1 * 24 * 60 * 60 * 1000)); var expires="expires=" + d.toUTCString(); 
    document.cookie = "key=" + response.key + ";" + expires + "; path=/";

    NAME=VALUE 赋予 Cookie 的名称和其值(必需项)
    expires=DATE Cookie 的有效期(若不明确指定则默认为浏览器关闭前为止)
    path=PATH 将服务器上的文件目录作为Cookie的适用对象(若不指定则默认为文档所在的文件目录)
    domain=域名 作为 Cookie 适用对象的域名 (若不指定则默认为创建 Cookie的服务器的域名)

    删除Cookie的唯一方法是: 将Expires设置为一个过去值, 一般会设置为 Thu, 01-Jan-1970 00:00:01 GMT 因为这是时间零点, 设这个总不会错.
    document.cookie = 'fontSize=;expires=Thu, 01-Jan-1970 00:00:01 GMT';


<!-- 4.保持登录状态token -->
    如果客户端不是浏览器,那么需要手动添加token(和cookie类似,也是登录凭证),将token添加到http header或者做为参数添加到url。
    是客服端也可以

posted @ 2020-10-08 22:22  sk-xm  阅读(153)  评论(0编辑  收藏  举报