localstorage引发的思考

首先来说一下localStorage是本地存储,容量大小为5m,缓存期限是无限久,即使浏览器关闭它也还存在,除非手动删除。下面用它来模拟cookie的功能,让它也具有过期时间

  function save(id,data){
        var date=new Date()
        var time=24*1000*60*60;
        localStorage.setItem(id,data)
        requestAnimationFrame(local)
        function local(){
            var date1=new Date();
                if(date1-date>time){localStorage.removeItem(id)}
                requestAnimationFrame(local)
            }
    }

如果存储的数据超过localstorage的大小,它不会覆盖原来的数据,也不会再增加数据,浏览器会报错QUOTA_EXCEEDED_ERR。

如何跨域存储localstorage呢?可以利用iframe标签及h5的webworker

//http://localhost:8081/#/
window.parent.postMessage({name:'xx'}, '*')

//http://localhost:5500
<body>
 <iframe src="http://localhost:8081/#/"></iframe>
</body>
<script>
  window.addEventListener('message',data=>{console.log(data.data)//{name:'xx'}
    localStorage.setItem('name',data.data.name)
})
</script>

子页面可以向父页面发送数据,然后存储在localstorage上

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值