说明

随着互联网的快速发展,基于网页的应用越来越普遍,同时也变的越来越复杂,为了满足各种各样的需求,会经常性在本地存储大量的数据,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的更多相关文章

  1. HTML5 的web储存: localStorage & sessionStorage

    早期的浏览器使用cookie储存,HTML5新增web储存,包括:localStorage 和 sessiongStorage; localStorage:可以永久储存: sessionStorage ...

  2. html5的本地存储localStorage和sessionStorage

    html5的本地存储localStorage和sessionStorage html5中新增的比较重要的一个功能就是web storage来实现客户端本地存储数据,之前存储数据都是用cookie来实现 ...

  3. 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 ...

  4. HTML5中Web存储

    HTML5 中web存储是一个比cookies更好的一个本地存储方式. 那么什么是HTML5存储呢? 使用HTML5可以在本地存储用户浏览的数据,HTML5技术没有出来之前是使用cookies进行本地 ...

  5. 移动端浏览器隐私模式/无痕模式使用本地存储localStorage/sessionStorage的问题

    移动端浏览器隐私模式/无痕模式使用本地存储localStorage/sessionStorage的问题 开发H5 webapp时经常需要使用本地存储,如localStorage和sessionStor ...

  6. 本地存储localStorage sessionStorage 以及 session 和cookie的对比和使用

    cookie和session都是用来跟踪浏览器用户身份的会话方式. 1.验证当前服务中继续请求数据时,哪些缓存数据会随着发往服务器? 只有cookie中设置的缓存数据会发送到服务器端 2. 强调几点: ...

  7. Web存储机制—sessionStorage,localStorage使用方法

    Web存储机制,在这里主要聊有关于Web Storage API提供的存储机制,通过该机制,浏览器可以安全地存储键值对,比使用cookie更加直观.接下来简单的了解如何使用这方面的技术. 基本概念 W ...

  8. html5的web存储

    在html5标准之前,web存储信息需要cookie来完成,但是cookie不适合大量数据存储.因为需要等待服务器响应,所以速度慢/效率低. 本地存储的特点: localstorage是仅存储在用户的 ...

  9. 【html5】Web存储_locaStorage对象的应用

    Web存储 html5可以在本地存储用户浏览的数据,数据的存储原理是以 键/值 存储的 存储对象分类 localStorage:没有时间限制的数据存储 sessionStorage:针对一个会话的数据 ...

随机推荐

  1. The sixth day of Crawler learning

    爬取我爱竞赛网的大量数据 首先获取每一种比赛信息的分类链接 def get_type_url(url):    web_data = requests.get(web_url)    soup = B ...

  2. 007 Ceph手动部署单节点

    前面已经介绍了Ceph的自动部署,本次介绍一下关于手动部署Ceph节点操作 一.环境准备 一台虚拟机部署单节点Ceph集群 IP:172.25.250.14 内核: Red Hat Enterpris ...

  3. 浅谈Redis的基本原理和数据类型结构的特性和应用开发场景

    一.Redis介绍 1,redis介绍(Redis安装在磁盘:Redis数据存储在内存) redis是一种基于键值对(key-value)数据库,其中value可以为string.hash.list. ...

  4. 小白学 Python 爬虫(32):异步请求库 AIOHTTP 基础入门

    人生苦短,我用 Python 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Python 爬虫(2):前置准备(一)基本类库的安装 小白学 Python 爬虫(3):前置准备(二)Li ...

  5. SpringBoot项目的代理机制【一】

    这是了解Spring代理机制的第一篇,尝试了解Spring如何实现Bean的注册和代理.这篇文章会抛出问题:Spring注册Bean,都会用Jdk代理或cglib创建代理对象吗? 1 项目准备 1.1 ...

  6. js判断各种类型

    js的六种基本类型:Object,Boolean,Number,String,Undefined,Null; Object中又有:Function,Array,Date... 如何判断数据类型? Ob ...

  7. matlab读取excel文件中的数据

    1.读取sheet1中的所有数据 1.1首先我们建立一个sheet表,表名为‘111’ 1.2 默认这些文本以及数字都放在sheet1中,我们将此excel选入当前工作目录(必要步骤), 选入当前工作 ...

  8. Java面向对象之异常【一】

    目录 Java面向对象之异常[一] 异常的继承体系 Error Exception 异常是否受检 unchecked exceptions(不受检异常) checked exceptions(受检异常 ...

  9. vue 项目使用JSbrideg.js与app通信

    一.建立JSbrideg.js文件 var jsBridge = {     isAndroid: null,     isIOS: null,     callHandlerFunc: functi ...

  10. python 条件判断的三元表达式

    示例:求两数中最大者 在JavaScript中代码如下: x = 1; y = 2; console.log(x > y ? x : y) 在python中代码如下: # 条件为真时的返回结果 ...