本地存储

  1. 随着互联网的快速发展,基于网页的应用越来越普遍,同时也变得越来越复杂,为了满足各种各样的需求会经常性在本地存储大量的数据,HTML5规范提出了相关解决方案.
  2. 本地存储特性
    在这里插入图片描述

window.sessionStorage

1. 生命周期为关闭浏览器窗口
2. 在同一个窗口下数据可以共享
3. 以键值对的形式存储使用
. ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200302163304213.png)
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200302164052344.png)
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200302164155922.png)
 清除所有数据
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200302164558325.png)

window.localStorage

  1. 生命周期永久生效,除非手动删除否则关闭页面也会存在
  2. 可以多窗口(页面)共享(同一浏览器可以共享)
  3. 以键值对的形式存储使用
  4. 使用与sessionStorage相同
    在这里插入图片描述
 <input type="text" id="username"><input type="checkbox" name="" id="remember">记住用户名
    <script>
        var username = document.querySelector('#username');
        var remember = document.querySelector('#remember');
        if (localStorage.getItem('username')) {
            username.value = localStorage.getItem('username');
            remember.checked = true;
        }
        //change事件,当remember发生改变的时候
        remember.addEventListener('change', function() {
            if (this.checked) {
                localStorage.setItem('username', username.value)
            } else {
                localStorage.removeItem('username');
            }
        })
    </script>

本地存储格式里面只能存储字符串的数据格式,把我们的数组对象转换为字符串格式 JSON.stringify()
获取本地存储的数据,我们需要把里面的字符串数据转换为 对象格式 JSON.parse()
在这里插入图片描述
数组的追加:arr.push();

### 本地存储技术的概念与实现 #### 什么是本地存储本地存储是一种允许Web应用程序在用户的设备上保存数据的技术。它提供了比传统Cookie更强大、灵活的功能,能够持久化存储大量数据而不影响页面性能[^1]。 #### 主要的本地存储方式 目前主流的前端框架和技术栈支持多种本地存储方案,其中包括但不限于: - **LocalStorage**: 提供了一种简单的键值对存储机制,适合长期存储少量数据。它的特点是即使浏览器关闭后仍然保留数据,直到手动清除为止。 - **SessionStorage**: 类似于LocalStorage,但它仅限于当前会话期间有效;一旦窗口或标签页被关闭,则该存储中的数据会被销毁。 - **IndexedDB**: 是一种更为复杂的客户端数据库解决方案,适用于需要处理更大规模结构化数据的应用场景。 对于UniApp开发环境而言,主要依赖`localStorage`以及其封装后的API来完成基本的数据操作需求[^1]。 #### 实现数据存储的方法 以下是基于JavaScript语法,在UniApp项目里利用LocalStorage进行简单数据写入读取的例子: ```javascript // 存储单条记录到 localStorage 中 function saveData(key, value){ uni.setStorageSync(key,value); } // 获取指定 key 对应的内容 function getData(key){ return uni.getStorageSync(key); } ``` 上述代码片段展示了如何定义两个函数分别用于向LocalStorage添加新项(`saveData`) 和检索已存在的项 (`getData`) 。这里采用了同步版本的操作接口 `setStorageSync()` 及 `getStorageSync()`, 它们可以直接返回结果而无需等待回调执行完毕[^1]. 需要注意的是,尽管这些方法非常方便易用,但由于它们存在一定的局限性——比如容量上限较低(通常为5MB),所以当面对较大数据量或者复杂查询逻辑时可能显得力不从心。此时可以考虑采用其他高级别的替代品如 IndexedDB 或者 SQLite 插件等扩展功能更强的选择[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值