8.H5新增API-Storage对象(储存)

1.存储有效期和作用域

localStorage

通过localStorage存储的数据是永久性的,除非web应用刻意删除存储的数据,或者用户通过设置浏览器配置来删除,数据将一直保留在用户的电脑上,永不过期

         同源策略

         协议 域名 端口号一致 就可以访问其内容

         如果其中一项不同就违背了同源策略 就访问不到 - 跨域

<!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>
    <script>

        // 同源策略
        // 协议 域名 端口号一致 就可以访问其内容
        // 如果其中一项不同就违背了同源策略 就访问不到 - 跨域

        // 永久性存储 
        // window.localStorage

        // setItem 设置当前值(key,value)
        // getItem 获取存储在本地的数据(key)
        // removeItem 删除某一个本地存储数据(key)
        // clear 清空所有

        // 设置存储数据
        localStorage.setItem('anhao', '天王盖地虎');
        localStorage.setItem('anhao1', '天王盖地虎1');
        localStorage.setItem('anhao2', '天王盖地虎2');
        localStorage.setItem('anhao3', '天王盖地虎3');
        // 获取存储数据
        var rel = localStorage.getItem("anhao");
        console.log(rel);

        // 删除
        // localStorage.removeItem("anhao");

        // 清除所有
        // localStorage.clear();

        // 获取存储的所有值
        console.log(localStorage.key(0));
        console.log(localStorage.key(1));
        console.log(localStorage.key(2));
        // 遍历当前的loaclStorage 对象 
        for (var i = 0; i < localStorage.length; i++) {
            console.log(localStorage.key(i), localStorage[localStorage.key(i)]);
            // localStorage[localStorage.key(i)]
        }
    </script>
</body>

</html>

 

sessionStorage

通过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>
    sessionStorage
    <script>

        // 临时存储 当页面关闭时就失效
        sessionStorage.setItem("sessionCode", "to day is 不热");
        // sessionStorage 即使同源也不共享数据 只在当前页面有效
        var rel = sessionStorage.getItem("sessionCode")
        console.log(rel);

        // 删除
        // sessionStorage.removeItem("sessionCode");

        // 清空所有
        // sessionStorage.clear();
    </script>
</body>

</html>

存储事件

与存储事件相关的事件对象有5个非常重要的属性:

  • key : 修改或删除的key值,如果调用clear()时,该属性值为null

  • newValue: 新设置的值,如果调用removeItem()时,该属性值为null

  • oldValue : 调用改变前的value值;添加新项时,该属性值为null

  • storageArea : 当前的storage对象

  • url : 触发该存储变化脚本所在文档的URL(也就是说哪个页面修改的数据)

<!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>
    <script>

        // 这个页面触发 存储事件
        // - key : 修改或删除的key值,如果调用clear()时,该属性值为null
        // - newValue: 新设置的值,如果调用removeItem()时,该属性值为null
        // - oldValue : 调用改变前的value值;添加新项时,该属性值为null
        // - storageArea : 当前的storage对象
        // - url : 触发该存储变化脚本所在文档的URL(也就是说哪个页面修改的数据)
        window.addEventListener("storage", function (obj) {
            console.log(obj);
            console.log(obj.key);
            console.log(obj.newValue);
            console.log(obj.oldValue);
            console.log(obj.storageArea);
            console.log(obj.url);
        })
    </script>
</body>

</html>

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值