js window.localStorage.html

  • Post author:
  • Post category:其他
<!doctype html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>js window.localStorage</title>

    <script src="../../lib/jquery/jquery-3.2.1.js"></script>
</head>
<body>

<div id="result"></div>
<p>
    <button οnclick="clickCounter()">单击计数</button>
</p>
<div id="result2"></div>
<p>点击按钮查看数字会自动增加。</p>
<p>关闭浏览器,重新打开这个页面点击按钮,可以看到之前的数据是有保留的。</p>

<script>
    /*功能:window.localStorage 的定义和使用
    参考:https://www.runoob.com/jsref/prop-win-localstorage.html
    知识点:
        1.localStorage 和 sessionStorage 属性允许在浏览器中存储 key-value 键值对数据。
            localStorage 用于长久保存整个网站的数据,保存的数据没有过期时间,直到手动去删除。
            localStorage 属性是只读的。
            提示: 如果你只想将数据保存在当前会话中,可以使用 sessionStorage 属性,
                该数据对象临时保存同一窗口(或标签页)的数据,在关闭窗口或标签页之后将会删除这些数据。
            localStorage.setItem("key", "value");
            let value = localStorage.getItem("key");
            localStorage.removeItem("key");
            localStorage.clear();
            let key = localStorage.key(index);
    */
    // 判断浏览器是否支持
    if (typeof (Storage) !== "undefined") {
        // 1.
        localStorage.setItem("name", "Smith");
        // document.getElementById("result").innerHTML = localStorage.getItem("lastname");
        $("#result").html(localStorage.getItem("name"));
    } else {
        $("#result").html("抱歉,你的浏览器不支持网络存储!");
    }

    function clickCounter() {
        // 判断浏览器是否支持
        if (window.localStorage) {
            if (localStorage.clickcount) {
                // console.log(typeof localStorage.clickcount);  // string
                localStorage.clickcount = Number(localStorage.clickcount) + 1;
            } else {
                localStorage.clickcount = 1;
            }
            $("#result2").html("你在按钮上已经点击了 " + localStorage.clickcount + " 次。");
        } else {
            $("#result").html("抱歉,你的浏览器不支持网络存储!");
        }
    }

    function testLocalStorage() {
        /*功能:测试localStorage。*/
        if (!window.localStorage) {
            alert("浏览器不支持localstorage");
            return false;
        } else {
            let storage = window.localStorage;
            console.log("storage:", storage);
            // Storage {name: "Smith", length: 1}
            // 写入字段 a
            storage["a"] = 1;
            // 写入字段 b
            storage.b = 1;
            // 写入字段 c
            storage.setItem("c", '3');
            console.log(typeof storage["a"]);  // string
            console.log(typeof storage["b"]);  // string
            console.log(typeof storage["c"]);  // string
            console.log("storage:", storage);
            // Storage {a: "1", b: "1", c: "3", name: "Smith", length: 4}
            // Storage {b: "1", c: "3", name: "Smith", a: "1", length: 4}
            for (let i = 0; i < storage.length; i++) {
                let key = storage.key(i);
                console.log(key);
                // a b c name
                // b c name a
            }
            storage.clear();
            console.log(storage);
            // Storage {length: 0}
        }
    }

    testLocalStorage();
</script>

</body>
</html>