本地存储之localStorage 、sessionStorage、globalStorage

本文详细介绍了HTML5提供的三种客户端存储方法:localStorage、sessionStorage和globalStorage。localStorage用于永久存储数据,sessionStorage针对一个session的数据存储,而globalStorage则允许跨窗口共享数据。

HTML5 提供了四种在客户端存储数据的新方法,即 localStorage 、sessionStorage、globalStorage、Web Sql Database。 本文介绍前面三个,这三个相对比较简单,理解和操作都比较容易


一,localStorage :
localStorage 没有时间限制的数据存储,第二天、第二周或下一年之后,数据依然可用。也就是说,localStorage是永远不会过期的,除非主动删除数据。数据可跨越多个窗口,无视当前会话,被共同访问、使用。有点像Asp.Net 应用程序中的全局变量Application。
 
二,sessionStorage :
顾名思义它就如同Asp.Net中的Session。 针对一个 session 的数据存储,任何一个页面存储的信息在窗口中同一网站的任何页面都可以访问它存储的数据。每个窗口的值都是独立的,它的数据会因窗口的关闭而丢失,不同窗口间的sessionStorage是不可以共享的。
 
localStorage /sessionStorage都有相同的Api 如
localStorage.length 获得storage中的个数
localStorage .key(n) 获得storage中第n个键值对的键
localStorage.key = value
localStorage.setItem(key, value) 添加
localStorage.getItem(key)获取
localStorage.removeItem(key) 移除
localStorage.clear() 清除
从上面的Api可以看出,他们其实就是键/值对,就是字典,就是JSON。既然可以看作是json ,那么对他们的操作就可以有如下方式:
如:localStorage.name="test" ;//添加
localStorage["name"]="test" ; //添加
alert(localStorage.name);//获取
alert(localStorage["name"]);//获取
 
三,globalStorage:

浏览器关闭以后,使用globalStorage存储的信息仍能够保留下来,和sessionStorage一样,域中任何一个页面存储的信息都能被所有的页面共享。目前只有FF支持,且只支持当前域下的globalStorage存储。

 
基本用法:
globalStorage['developer.mozilla.org'] —— 在developer.mozilla.org下面所有的子域都可以通过这个存储对象来进行读和写。
globalStorage['mozilla.org'] —— 在mozilla.org域名下面的所有网页都可以通过这个存储对象来进行读和写。
globalStorage['org'] —— 在.org域名下面的所有网页都可以通过这个存储对象来进行读和写。
globalStorage[''] —— 在任何域名下的任何网页都可以通过这个存储对象来进行读和写。
 
方法属性:
setItem(key, value) —— 设置或重置 key 值。
getItem(key) —— 获取 key 值。
removeItem(key) —— 删除 key 值。
设置 key 值:window.globalStorage["planabc.net"].key = value;
获取 key 值:value = window.globalStorage["planabc.net"].key;

转载于:https://my.oschina.net/haoye/blog/506116

在 Web 应用程序中,我们经常需要在浏览器中保存一些数据,以便在下一次访问应用程序时可以直接读取这些数据。为了实现这个功能,Web 浏览器提供了两种本地数据存储方式:`localStorage` `sessionStorage`。 `localStorage` `sessionStorage` 都是浏览器提供的 JavaScript API,可以用来在浏览器中保存读取数据。它们的主要区别在于数据的生命周期作用域。 `localStorage` 中保存的数据是永久性的,除非用户手动清除,否则数据将一直保存在浏览器中。而 `sessionStorage` 中保存的数据只在当前会话中有效,当用户关闭浏览器窗口或标签页时,数据将被删除。 另外,`localStorage` 中保存的数据可以在不同的窗口或标签页中共享,而 `sessionStorage` 中保存的数据只能在同一个窗口或标签页中共享。 在 JavaScript 中,我们可以使用以下代码来读取保存数据到本地存储中: ``` // 保存数据到 localStoragelocalStorage.setItem('key', 'value') // 从 localStorage 中读取数据 const value = localStorage.getItem('key') // 从 localStorage 中删除数据 localStorage.removeItem('key') // 清空 localStorage 中的所有数据 localStorage.clear() ``` 类似地,我们可以使用 `sessionStorage` 来读取保存数据: ``` // 保存数据到 sessionStoragesessionStorage.setItem('key', 'value') // 从 sessionStorage 中读取数据 const value = sessionStorage.getItem('key') // 从 sessionStorage 中删除数据 sessionStorage.removeItem('key') // 清空 sessionStorage 中的所有数据 sessionStorage.clear() ``` 需要注意的是,`localStorage` `sessionStorage` 中只能保存字符串类型的数据,如果需要保存其他类型的数据,需要先将其转换为字符串类型。例如,我们可以使用 `JSON.stringify` 方法将 JavaScript 对象转换为字符串,然后再保存到本地存储中。在读取数据时,需要使用 `JSON.parse` 方法将字符串转换为 JavaScript 对象。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值