美文网首页让前端飞
localStorage和sessionStorage——本地存

localStorage和sessionStorage——本地存

作者: 椰果粒 | 来源:发表于2018-07-06 18:07 被阅读35次

    一:localStorage是什么

    localStorage是h5新增的,作用是本地存储

    二:localStorage与cookie相比的优势

    localStorage可以将第一次请求的数据直接存储到本地(相当于一个5兆的数据库),比cookie可以节约带宽

    三:localStorage的局限

    • IE8以上才支持localStorage
    • 所有浏览器的localStorage的值都是string类型,对于json类型要转换
    • localStorage在浏览器的隐私模式下不可读
    • 本质上是对字符串的操作,如果存储内容过多的话会消耗空间,导致页面变卡
    • localStorage不能被爬虫抓取到

    四:localStorage与sessionStorage的区别

    唯一区别是存储的时间:

    • localStorage永久存储在本地,除非手动删除,否则永远存在
    • sessionStorage在浏览器关闭之后就删除了

    五:注意事项

    1、localStorage只支持string类型,保存的都是string类型,要进行类型转化
    2、localStorage遵循同源策略,不同的网站不能直接共享localStorage
    3、操作数据时推荐用getItem(),setItem(),deleteItem()

    六:具体实现

    1. 检验浏览器是否支持localStorage

    if(!window.localStorage){
        alert("浏览器不支持localStorage");
    }else{其他操作}
    

    2. 写数据

    if(!window.localStorage){
        alert("浏览器不支持localStorage");
    }else{
        let lstorage = window.localStorage;
        // 三种方式写入localStorage
        lstorage['name'] = "小明";
        lstorage.age = 12;
        lstorage.setItem("job","student");
    
        console.log(typeof lstorage['name'])    // string
        console.log(typeof lstorage['age'])     // string
        console.log(typeof lstorage['job'])     // string
        // 关于打印出string类型:因为localStorage只支持string类型
    

    3. 读取数据

    if(!window.localStorage){
        alert("浏览器不支持localStorage");
    }else{
        let lstorage = window.localStorage;
        // 读取数据
        console.log(lstorage.name)  // 小明
        console.log(lstorage["age"])    // 12
        console.log(lstorage.getItem("job")) // student
    }
    

    4. 修改数据

    if(!window.localStorage){
        alert("浏览器不支持localStorage");
    }else{
        let lstorage = window.localStorage;
        // 修改
        lstorage.setItem("name","小兰")
        console.log(lstorage.getItem("name"))   // 小兰
    }
    

    5. 删除数据

        // 删除
        // 全部删除
        lstorage.clear()
        console.log(lstorage.getItem("name"))   // null
        console.log(lstorage.getItem("age"))    // null
        console.log(lstorage.getItem("job"))    // null
        // 删除某个键值对(假设上边的全部删除不存在)
        lstorage.removeItem("name")
        console.log(lstorage.getItem("name"))   // null
        console.log(lstorage.getItem("age"))    // 12
        console.log(lstorage.getItem("job"))    // 小兰
    

    6. 获取key值——使用key方法获取

        for(let i=0;i<lstorage.length;i++){
            console.log(lstorage.key(i))
        }
    

    七:具体实现

    1. 输入框的值的保存与获取

    <body>
    <input type="text" id="username">
    <input type="password" id="password">
    <button id="saveDate" onclick="saveData()">保存数据</button>
    <button id="getData" onclick="getData()">获取数据</button>
    <script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
    <script>
    if(!window.localStorage){
        alert("浏览器不支持localStorage")
    }else{
        function saveData(){
            let lstorage = window.localStorage;
            let username = $("#username").val();
            let password = $("#password").val();
            lstorage.setItem("username",username);
            lstorage.setItem("password",password);
            alert("保存成功!")
        }
        function getData(){
            let lstorage = window.localStorage;
            alert(lstorage.getItem("username"));
            alert(lstorage.getItem("password"))
        }
    }
    </script>
    </body>
    

    相关文章

      网友评论

        本文标题:localStorage和sessionStorage——本地存

        本文链接:https://www.haomeiwen.com/subject/guubuftx.html