h5新特性

新特性请参考这篇文章,以下内容仅为个人笔记。
h5新特性https://www.cnblogs.com/vicky1018/p/7705223.html

1.sessionStroge
语法:Window sessionStorage 属性
新建一个页面,在console页面输入sessionStorage.setItem("name","how to find job")
然后切换到application栏可以查看到sessionstroge中有我们对应项目。点击项目,可以查看到我们刚刚设置的name值。在这里插入图片描述当对name值进行重新设置后,再次查看会发现之前的name值被覆盖了。
我们也可以用sessionStorage.getItem("name")去获取name值。
在这里插入图片描述还可以设置多个值,比如可以设置from值:sessionStorage.setItem("from",2020)依旧可以查询到from值在这里插入图片描述
我们还可以通过sessionStorage.length查询到sessionStorage对象中存储的数据项的数目。
想要移除sessionStorage中的一个项目,可以使用remove移除:sessionStorage.removeItem("from"),此时再去application中查询就没有from数据项了。

sessionStorage.clear()

sessionStorage.clear()可以清除sessionStorage对象中存储的所有数据项,慎用。
2.storage事件
当存储区域发生变化的时候,会触发一个storage事件。比如设置新数据,移除,或者清除数据的时候,都会触发这个storage事件。
要注意的是,这个storage事件会在其他窗口或者标签里面发生。
也就是数据发生改变的窗口不会触发storage事件,但是其他窗口可以接收这个事件。前提是这些窗口或者标签可以访问到发生变化的storage数据。
实例:
index.html

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8"> 
        <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0,minimum-scale=1.0,user-scalable=0" />
        <meta http-equiv="X-UA-Compatible" content="ie=chrome,chrome=1">
        <title>h5新特性</title>
        <link rel="stylesheet" href="http://netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css">
    </head>
    <body>
        <div class="container">
            <div class="row" style="padding: 0 25px;">
                <div class="page-header">
                    <h1 id = "buttons">localStorage</h1>
                </div>
                <button id="set-storage" class="btn btn-primary">设置数据项目</button>
                <button id="clear-storage" class="btn btn-primary">清除数据项目</button>
            </div>
        </div>
        <script src="../js/script.js"></script>
    </body>
</html>

script.js

//设置数据
const setStorage = () => {
    localStorage.setItem("name","今天天气不错")
}
//清空数据
const clearStorage = () => {
    localStorage.clear()
}

const showStorageInfo=(e)=>{
    console.log(
        '数据名称:'+e.key+'\n'+
        '以前的值:'+e.oldValue+'\n'+
        '新的值:'+e.newValue+'\n'+
        '链接:'+e.url+'\n'+
        '存储:'+e.storageArea
    );
}
const btnSetStorage = document.querySelector("#set-storage");  // querySelector() 方法返回文档中匹配指定 CSS 选择器的一个元素。
btnSetStorage.addEventListener('click',(e)=>{
    setStorage()
},false)
const btnClearStorage = document.querySelector("#clear-storage");  // querySelector() 方法返回文档中匹配指定 CSS 选择器的一个元素。
btnClearStorage.addEventListener('click',(e)=>{
    clearStorage()
},false)


window.addEventListener('storage',showStorageInfo,false)

运行调试,点击按钮可以设置或清除localStorage,但是console并没有打印出数据,当我们打开一个新的标签页,它可以监听到其他页面对storage的改变,但是本窗口不会监听自己的改变。如图所示。
监听数据
3.localStorage作用域
取决于文档的来源。同一来源的文档可以互相使用定义的localStorage数据。
这个文档的来源是根据他们的主机名,端口号和协议定义的。
同一个源下的不同文件可以相互访问。–同源策略
不同浏览器之间是访问不到的。

4.数据转换
简便读取方法:
localStorage.name = “你好”
相当于localStorage.setItem(“name” ,“你好”);
localStorage.name
相当于localStorage.getItem(“name”);
但是这种方法只适用于存取字符串类型的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值