HTML5(三)——Web 本地存储
WebStorage的目的是克服由cookie所带来的一些限制,当数据需要被严格控制在客户端时,不需要持续的将数据发回服务器。
WebStorage两个主要目标:
(1)提供一种在cookie之外存储会话数据的路径。
(2)提供一种存储大量可以跨会话存在的数据的机制。
web存储更加安全与快速,这些数据还不会保存到服务器,还可以存储大量数据而不影响网站性能。
web 存储类型
- localStorage - 用于长久保存数据,没有有效期,直到手动清除。
- sessionStorage - 临时保存当前窗口的数据,窗口关闭之后自动清除。
不管是 localStorage 还是 sessionStorage 使用方法都是一样的语法,对常见操作语法进行示范。以下就以localStorage为例:
常见操作语法:
- 保存数据:
localStorage.key = value
localStorage.setItem(key,value)
- 获取数据
localStorage.key
localStorage.getItem(key)
- 删除单个数据:
localStorage.removeItem(key)
delete localStorage.key
- 删除全部:localStorage.clear()
- 获取某个索引的键值:localStorage.key(index)
数据都是以键值对形式存在的,操作的时候与json有点类似。
web存储数据应用
应用1:取出本地存储的所有数据,以localStorage为例。
localStorage和sessionStorage是两个对象,类似json。可遍历取出数据,如:
localStorage.user = "倩倩" localStorage.age = "18" localStorage.job = "打杂" console.log(localStorage)// {job: "打杂", age: "18", user: "倩倩", length: 3} for(key in localStorage){ console.log(`${key}--${localStorage[key]}`) }
运行程序之后,结果如图:
我们发现遍历的时候把localStorage的属性和方法全部打印出来了,而我们需要的只是我们存储的三个数据,其余的都不要,此时我们换个方法。
localStorage.user = "倩倩" localStorage.age = "18" localStorage.job = "打杂" console.log(localStorage)// {job: "打杂", age: "18", user: "倩倩", length: 3} for(let i=0;i<localStorage.length;i++){ let key = localStorage.key(i) console.log(`${key}:${localStorage[key]}`) }
此时运行结果就是我们需要的结果了!
记住用户登录信息、存草稿、存邮件等经常会使用 localStorage,我们介绍下几种存储方式的区别,可以更好地根据需求选择存储方式。
几种存储方式区别
cookies 和 sessionStorage、localStorage区别如图:
上述看三者存储大小有很大差异,存储内容上也不同,cookie只能保存字符串类型,但sessionStorage和localStorage能够支持任何类型的对象存储。如果保存复杂json数据时,可以转成字符串保存,取出时通过JSON.parse()转成json格式。
安全性方面,web 存储不会发送到服务器端,不用担心被截获,所以相对cookie安全些。
实例:网页中写信,自动保存草稿,网页关闭重新打开之后数据依旧存在。
<textarea name="" id="email" cols="30" rows="10" oninput="save()"></textarea> <script> function save(){ var x = document.getElementById("email") localStorage.setItem('email',x.value) } window.onload =function(){ var x = document.getElementById("email") x.value = localStorage.getItem("email") } </script>
注意:如果你是直接使用浏览器打开html文件,此时发现并不会存储,需要声明下存储是针对域的,所以我们需要放到服务内,服务内访问才可以进行缓存。
需要的同学自己去下载个nginx。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?