HTML5的web 存储localStorage、sessionStorage
说明
随着互联网的快速发展,基于网页的应用越来越普遍,同时也变的越来越复杂,为了满足各种各样的需求,会经常性在本地存储大量的数据,HTML5规范提出了相关解决方案。我们可以使用localStorage、sessionStorage进行本地的存储。其它的还有WebSQL、IndexDB存储。
兼容性
Internet Explorer 8+, Firefox, Opera, Chrome, 和 Safari支持Web 存储,IE7及IE7之前都不支持web存储
特性
1、设置、读取方便、页面刷新不丢失数据
2、容量较大,sessionStorage约5M、localStorage约20M
3、只能存储字符串,可以将对象JSON.stringify() 编码后存储
4、取出JSON.stringify() 编码的数据,需要使用 JSON.parse()解析
sessionStorage
1、sessionStorage - 用于临时保存同一窗口(或标签页)的数据,在关闭窗口或标签页之后将会删除这些数据。
2、浏览器页面关闭后,数据会丢失。就算页面重新打开,数据也不会恢复。
3、不能多个窗口共享
localStorage
1、localStorage - 用于长久保存整个网站的数据,保存的数据没有过期时间,直到手动去除。
2、可以多窗口(页面)共享(同一浏览器可以共享)。
3、就算窗口关闭了,数据会暂时消失,当页面重新打开之后,数据就恢复了。
相关API
它们都具有相同的方法
1、setItem(key, value) 设置存储内容
2、getItem(key) 读取存储内容
3、removeItem(key) 删除键值为key的存储内容
4、clear() 清空所有存储内容
5、key(index) 得到某个索引的key值
相关示例
这里演示的是sessionStorage,localStorage也是如此
<body>
<input type="text" id="text">
<button id="btn1">存储数据</button>
<button id="btn2">获取数据</button>
<button id="btn3">删除数据</button>
<button id="btn4">获取某个key值</button>
</body>
<script>
var text = document.getElementById('text')
var btn1 = document.getElementById('btn1')
var btn2 = document.getElementById('btn2')
var btn3 = document.getElementById('btn3')
var btn4 = document.getElementById('btn4')
//存储数据
var inp = ''
btn1.onclick = function(){
inp = text.value
//存储数据
sessionStorage.setItem('uname', inp)
}
//获取数据
btn2.onclick = function(){
//获取数据
var uname = sessionStorage.getItem('uname')
alert(uname)
}
//删除数据
btn3.onclick = function(){
//删除所有
//sessionStorage.clear()
sessionStorage.removeItem('uname')
}
//获取第 0 个索引的key值
btn4.onclick = function(){
var key = sessionStorage.key(0)
alert(key)
}
特殊
因为它们只能存储字符串,因此当要存储数组、对象等,需要使用JSON.stringify()编码后再存储,取值也需要使用JSON.parse()解析该字符串才能获取相应的数据。
//定义一个对象
var obj = {
name: '车神-黄杰',
age:23
}
//保存值
sessionStorage.setItem('info', JSON.stringify(obj))
//获取值
var info = JSON.parse(sessionStorage.getItem('info'))
//输出值
alert(info.name)
注意
因为有兼容性问题,因此在使用时根据自己的需要,判断是否存在兼容性问题,给出友好提示。
if(typeof(Storage)!=="undefined")
{
// 是的! 支持 localStorage sessionStorage 对象!
} else {
// 抱歉! 不支持 web 存储。
}
HTML5的web 存储localStorage、sessionStorage的更多相关文章
- HTML5 的web储存: localStorage & sessionStorage
早期的浏览器使用cookie储存,HTML5新增web储存,包括:localStorage 和 sessiongStorage; localStorage:可以永久储存: sessionStorage ...
- html5的本地存储localStorage和sessionStorage
html5的本地存储localStorage和sessionStorage html5中新增的比较重要的一个功能就是web storage来实现客户端本地存储数据,之前存储数据都是用cookie来实现 ...
- web 存储方式汇总:Cookies,Session, Web SQL; Web Storage(LocalStorage ,SessionStorage),IndexedDB,Application Cache,Cache Storage
1 1 1 web 存储方式汇总: 旧的方式: Cookies; Session; Web SQL; 新的方式 HTML5 : Web Storage(LocalStorage ,SessionSto ...
- HTML5中Web存储
HTML5 中web存储是一个比cookies更好的一个本地存储方式. 那么什么是HTML5存储呢? 使用HTML5可以在本地存储用户浏览的数据,HTML5技术没有出来之前是使用cookies进行本地 ...
- 移动端浏览器隐私模式/无痕模式使用本地存储localStorage/sessionStorage的问题
移动端浏览器隐私模式/无痕模式使用本地存储localStorage/sessionStorage的问题 开发H5 webapp时经常需要使用本地存储,如localStorage和sessionStor ...
- 本地存储localStorage sessionStorage 以及 session 和cookie的对比和使用
cookie和session都是用来跟踪浏览器用户身份的会话方式. 1.验证当前服务中继续请求数据时,哪些缓存数据会随着发往服务器? 只有cookie中设置的缓存数据会发送到服务器端 2. 强调几点: ...
- Web存储机制—sessionStorage,localStorage使用方法
Web存储机制,在这里主要聊有关于Web Storage API提供的存储机制,通过该机制,浏览器可以安全地存储键值对,比使用cookie更加直观.接下来简单的了解如何使用这方面的技术. 基本概念 W ...
- html5的web存储
在html5标准之前,web存储信息需要cookie来完成,但是cookie不适合大量数据存储.因为需要等待服务器响应,所以速度慢/效率低. 本地存储的特点: localstorage是仅存储在用户的 ...
- 【html5】Web存储_locaStorage对象的应用
Web存储 html5可以在本地存储用户浏览的数据,数据的存储原理是以 键/值 存储的 存储对象分类 localStorage:没有时间限制的数据存储 sessionStorage:针对一个会话的数据 ...
随机推荐
- $[NOIp2017]$ 宝藏 状压$dp$
\(Sol\) 觉得这里是个很巧妙的地方吖,就是记下当前扩展点集的最大深度,然后强制下一步扩展的点集都是最大深度+1.这样做在当前看可能会导致误算答案导致答案偏大,但是整个\(dp\)完成后一定可以得 ...
- Java集合使用之next方法与remove方法 | Java集合使用之remove方法使用易错
Iterator接口的remove方法将会删除上次调用next方法时返回的元素. next方法和remove方法的调用具有相互依赖性,如果调用remove方法前没有调用next方法是不合法的. 错误使 ...
- C#泛型(Generic)
一.什么是泛型 泛型(Generic)是C#语言2.0.通用语言运行时(CLR)2.0..NET Framework2.0推出来的新特性. 泛型为.NET框架引入类型参数(Type Parameter ...
- 【C++】自加、自减(补充)
// // main.cpp // [记录]自加.自减(补充) // // Created by T.P on 2018/3/7. // Copyright © 2018年 T.P. All righ ...
- centos下MySQL登录1045问题解决
由于需要在centos下部署整个应用,自然少不了对数据库的操作.但很多人可能会遇到一些问题,比如创建用户成功,但是却无法登录. 无法登陆一般就两个原因.第一,远程访问端口没开,第二个原因就是密码错误了 ...
- 利用Tampermonkey(油猴)+ IDM 实现百度云盘大文件下载(IDM安装教程)
关注微信公众号:“指尖创意” 在菜单干货专区软件目录里领取链接: tampermonkey插件是一个免费的浏览器扩展和最为流行的用户脚本管理器,拥有适用于 Chrome, Microsoft Edge ...
- schedule of 2016-10-17~2016-10-23(Monday~Sunday)——1st semester of 2nd Grade
most important things to do 1.joint phd preparations 2.journal paper to write 3.solid fundamental kn ...
- 【一起学源码-微服务】Eureka+Ribbon+Feign阶段性总结
前言 想说的话 这里已经梳理完Eureka.Ribbon.Feign三大组件的基本原理了,今天做一个总结,里面会有一个比较详细的调用关系流程图. 说明 原创不易,如若转载 请标明来源! 博客地址:一枝 ...
- Magicodes.IE之Excel模板导出教材订购表
说明 本教程主要说明如果使用Magicodes.IE.Excel完成教材订购表的Excel模板导出. 要点 本教程使用Magicodes.IE.Excel来完成Excel模板导出 需要通过创建Dto来 ...
- Android通过子线程更新UI的几种方式
一般情况下,UI的更新都少不了Handler,首先我们先了解一下Handler机制: Handler消息机制 定义 Message 线程间通信的数据单元,可通过message携带需要的数据创建对象:M ...