• 本地储存cookie,localStorage,sessionStorage


    Cookie是存储在用户计算机上的小文件,保存特定客户端和网站的适量数据,并可以由Web服务器或客户端浏览器访问,允许服务器提供针对特定用户定制的页面,或者页面本身可以包含一些知道cookie中的数据的脚本

    <script>
            // 查询cookie
            // console.log(document.cookie);
    
            // 给cookie设定时间
            // var oDate = new Date();
            // oDate.setDate(oDate.getDate()+3);
            // document.cookie = "username=honny;expires="+oDate;
            // console.log(document.cookie);
    
            // 修改cookie
            // document.cookie = "username=honny";
            // document.cookie = "username=honny1";
    
            // 删除cookie删除cookie就是把设置的日期小于当前的日期
            // var oDate = new Date();
            // oDate.setDate(oDate.getDate()-1);
            // document.cookie = "username=honny;expires="+oDate;
            // console.log(document.cookie);
    
            // cookie的封装
            function setCookie(name, value, day) {
                // 设置cookie
                var oDate = new Date();
                oDate.setDate(oDate.getDate() + day);
                document.cookie = name + "=" + value + ";expires=" + oDate;
            };
    
            
            function getCookie(name) {
                // 获取cookie
                var str = document.cookie;
                var arr = str.split("; ");
                for(var i=0; i<arr.length; i++){
                    var arr1 = arr[i].split("=")
                    if(arr1[0] == name){
                        return arr1[1];
                    }
                }
            };
            
    
            function removeCookie(name) {
                // 移除cookie
                setCookie(name,1,-1)
            };
        </script>

    localStorage的优势

    1、localStorage拓展了cookie的4K限制

    2、localStorage会可以将第一次请求的数据直接存储到本地,这个相当于一个5M大小的针对于前端页面的数据库,相比于cookie可以节约带宽,但是这个却是只有在高版本的浏览器中才支持的

    localStorage的局限

    1、浏览器的大小不统一,并且在IE8以上的IE版本才支持localStorage这个属性

    2、目前所有的浏览器中都会把localStorage的值类型限定为string类型,这个在对我们日常比较常见的JSON对象类型需要一些转换

    3、localStorage在浏览器的隐私模式下面是不可读取的

    4、localStorage本质上是对字符串的读取,如果存储内容多的话会消耗内存空间,会导致页面变卡

    5、localStorage不能被爬虫抓取到

    localStorage与sessionStorage的唯一一点区别就是localStorage属于永久性存储,而sessionStorage属于当会话结束的时候,sessionStorage中的键值对会被清空

    简单案例:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
    </head>
    <body>
        <input type="text" name="" id="input">
        <button id="set">存储数据</button>
        <button id="get">获取数据</button>
        <button id="remove">删除数据</button>
        <button id="clear">清空所有数据</button>
        <script>
            // 生命周期永久有效
            // 只要是同一个浏览器都是可以使用的
            // 存储数据
            set.addEventListener("click",function(){
                // 当我们点击后就将数据存储起来
                var val = input.value;
                localStorage.setItem("name",val);
            });
            // 获取数据
            get.addEventListener("click",function(){
                // 当我们点击后就将数据获取
                console.log(localStorage.getItem("name"));
            });
            // 删除数据
            remove.addEventListener("click",function(){
                // 当我们点击后就将数据删除
                localStorage.removeItem("name");
            });
            // 删除数据
            clear.addEventListener("click",function(){
                // 当我们点击后就将所有数据清除
                localStorage.clear("name");
            });
    
        </script>
    </body>
    </html>

    sessionStorage存储的数据仅在会话期间有效。sessionStorage.length可以返回数据的长度

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
    </head>
    <body>
        <input type="text" name="" id="input">
        <button id="set">存储数据</button>
        <button id="get">获取数据</button>
        <button id="remove">删除数据</button>
        <button id="clear">清空所有数据</button>
        <script>
            // 生命周期只要关闭浏览器就不会存在
            // 只有当页面有用
            // 存储数据
            set.addEventListener("click",function(){
                // 当我们点击后就将数据存储起来
                var val = input.value;
                sessionStorage.setItem("name",val);
            });
            // 获取数据
            get.addEventListener("click",function(){
                // 当我们点击后就将数据获取
                console.log(sessionStorage.getItem("name"));
            });
            // 删除数据
            remove.addEventListener("click",function(){
                // 当我们点击后就将数据删除
                sessionStorage.removeItem("name");
            });
            // 删除数据
            clear.addEventListener("click",function(){
                // 当我们点击后就将所有数据清除
                sessionStorage.clear("name");
            });
    
        </script>
    </body>
    </html>

    另外还有一个事件storage 事件在对localStorage与sessionStorage进行数据进行增删改操作时触发。

  • 相关阅读:
    dataTables的导出Excel功能
    jquery生成二维码图片
    angular2表单初体验
    台湾辅仁大学的python教程笔记
    浅说《测试用例》----给测试新手的
    测试员的工作与学习
    简单的表格代码
    特殊效果字体代码
    办公自动化的基本方法
    css网页的几种类型
  • 原文地址:https://www.cnblogs.com/niuyaomin/p/12784522.html
Copyright © 2020-2023  润新知