使用HTML5 Web存储的localStorage和sessionStorage方式

localStorage(本地存储),可以长期存储数据,没有时间限制,一天,一年,两年甚至更长,数据都可以使用。sessionStorage(会话存储),只有在浏览器被关闭之前使用,创建另一个页面时同意可以使用,关闭浏览器之后数据就会消失。

HTML5 的本地存储 API 中的 localStorage 与 sessionStorage 在使用方法上是相同的,区别在于 sessionStorage 在关闭页面后即被清空,而 localStorage 则会一直保存。我们这里以 localStorage 为例,简要介绍下 HTML5 的本地存储,并针对如遍历等常见问题作一些示例说明。 localStorage 是 HTML5 本地存储的 API,使用键值对的方式进行存取数据,存取的数据只能是字符串。不同浏览器对该 API 支持情况有所差异,如使用方法、最大存储空间等。

一、localStorage API 基本使用方法

localStorage API 使用方法简单易懂,如下为常见的 API 操作及示例: 设置数据:localStorage.setItem(key,value); 示例:

?


1

2

3

for(var i=0; i<10; i++){

 localStorage.setItem(i,i);

}

获取数据:localStorage.getItem(key) 获取全部数据:localStorage.valueOf() 示例:

?


1

2

3

for(var i=0; i<10; i++){

 localStorage.getItem(i);

}

删除数据:localStorage.removeItem(key) 示例:

?


1

2

3

for(var i=0; i<5; i++){

 localStorage.removeItem(i);

}

清空全部数据:localStorage.clear() 获取本地存储数据数量:localStorage.length 获取第 N 个数据的 key 键值:localStorage.key(N)


2. 遍历 key 键值方法

?


1

2

3

for(var i=localStorage.length - 1 ; i >=0; i--){

 console.log(‘第‘+ (i+1) +‘条数据的键值为:‘ + localStorage.key(i) +‘,数据为:‘ + localStorage.getItem(localStorage.key(i)));

}

3. 存储大小限制测试及异常处理

3.1 数据存储大小限制测试

不同浏览器对 HTML5 的本地存储大小基本均有限制,一个测试的结果如下:

?


1

2

3

4

5

IE 9          4999995 5 5000000

firefox 22.0 5242875 5 5242880

chrome  28.0  2621435 5 2621440

safari  5.1   2621435 5 2621440

opera   12.15 > 5M (超出则会弹出允许请求更多空间的对话框)

测试代码参考:

?


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

<!DOCTYPE html>

<html>

<head>

<script>

 function log( msg ) {

     console.log(msg);

     alert(msg);

 }</p>

<p> var limit;

 var half = ‘1‘; //这里会换成中文再跑一遍

 var str = half;

 var sstr;

 while ( 1 ) {

     try {

         localStorage.clear();

         str += half;

         localStorage.setItem( ‘cache‘, str );

         half = str;

     } catch ( ex ) {

         break;

     }

 }

 var base = str.length;

 var off = base / 2;

 var isLeft = 1;

 while ( off ) {

     if ( isLeft ) {

         end = base - (off / 2);

     } else {

         end = base + (off / 2);

     }</p>

<p>     sstr = str.slice( 0, end );

     localStorage.clear();

     try {

         localStorage.setItem( ‘cache‘, sstr );

         limit = sstr.length;

         isLeft = 0;

     } catch ( e ) {

         isLeft = 1;

     }</p>

<p>     base = end;

     off = Math.floor( off / 2 );

 }</p>

<p> log( ‘limit: ‘ + limit );

</script>

</html>

3.2 数据存储异常处理

?


1

2

3

4

5

6

7

8

9

10

try{

 localStorage.setItem(key,value);

}catch(oException){

 if(oException.name == ‘QuotaExceededError‘){

  console.log(‘超出本地存储限额!‘);

  //如果历史信息不重要了,可清空后再设置

  localStorage.clear();

  localStorage.setItem(key,value);

 }

}

总结:

H5的两种存储技术的最大区别就是生命周期。localStorage是本地存储,存储期限不限;sessionStorage会话存储,页面关闭数据就会丢失。

使用方法:

localStorage.setItem(“key”,“value”)//存储

localStorage.getItem(key)//按key进行取值

localStorage.valueOf( )//获取全部值

localStorage.removeItem(key)//删除单个值

localStorage.clear()//删除全部数据

localStorage.length//获得数据的数量

localStorage.key(N)//获得第N个数据的key值

注:localStorage和sessionStorage用法相同

时间: 2024-10-10 19:34:03

使用HTML5 Web存储的localStorage和sessionStorage方式的相关文章

HTML5 web存储之LocalStorage和sessionStorage

什么是localstorage 前几天在老项目中发现有对cookie的操作觉得很奇怪,咨询下来是要缓存一些信息,以避免在URL上面传递参数,但没有考虑过cookie会带来什么问题: ① cookie大小限制在4k左右,不适合存业务数据 ② cookie每次随HTTP事务一起发送,浪费带宽 localstorage可以说是对cookie的优化,使用它可以方便在客户端存储数据,并且不会随着HTTP传输,但也不是没有问题: ① localstorage大小限制在500万字符左右,各个浏览器不一致 ②

(转)HTML5开发学习(2):本地存储之localStorage 、sessionStorage、globalStorage

原文:http://www.cnblogs.com/xumingxiang/archive/2012/03/25/2416386.html HTML5开发学习(2):本地存储之localStorage .sessionStorage.globalStorage   Posted on 2012-03-25 11:23 祥叔 阅读(2) 评论(0)  编辑 收藏 HTML5 提供了四种在客户端存储数据的新方法,即 localStorage .sessionStorage.globalStorage

HTML5 web存储

HTML5 web 存储,一个比cookie更好的本地存储方式. 什么是 HTML5 Web 存储? 使用HTML5可以在本地存储用户的浏览数据. 早些时候,本地存储使用的是cookies.但是Web 存储需要更加的安全与快速. 这些数据不会被保存在服务器上,但是这些数据只用于用户请求网站数据上.它也可以存储大量的数据,而不影响网站的性能. 数据以 键/值 对存在, web网页的数据只允许该网页访问使用. 浏览器支持 Internet Explorer 8+, Firefox, Opera, C

加速HTML5应用的九大方法-------3.使用 HTML5 Web 存储

加速HTML5应用的九大方法-------3.使用 HTML5 Web 存储你需要在浏览器上存储一些数据时,你可能会首先考虑到 Cookie,这些 Cookie 在每次浏览器请求时都会附带上.而 HTML5 更有效的方法就是本地存储 -- Web Storage.有两个 Web Storage 对象分别是:sessionStorage 和 localStorage ,这些存储的数据是不会通过 HTTP 请求来传输的,因此不会对请求的时间参数任何影响,下面是一小段示例代码:// check to

HTML5 Web存储 页面间进行传值

在实际使用过程中,经常会遇到需要在页面间进行传值的情况,最初设想一定需要后端才能进行数据的存储和读取,或者在本地使用一个cookie进行保存,直到了解到HTML5 Web存储 使用HTML5的新特性可以在本地存储用户的浏览数据.Web 存储需要更加的安全与快速. 这些数据不会被保存在服务器上,数据只用于用户请求网站数据上.它也可以存储大量的数据,而不影响网站的性能. 数据以“键/值”对存在, web网页的数据只允许该网页访问使用 方法: localStorage 和 sessionStorage

HTML5 Web存储(Web Storage)技术及用法

在如今的Web开发中,HTML5是大家讨论的最大一个话题.HTML5提供的新功能特征使得Web程序员如虎添翼,并免去了以往钻研各种方法来让网站更好.更快.更灵活的气力.这些新功能中有一个非常让我感兴趣,它就是Web存储(Web Storage).Web存储(Web Storage)提供了一个在浏览器端保存用户会话信息的方法.下面让我们来看一看Web存储(Web Storage)的基本用法! Web存储(Web Storage)基本要领 存储的数据可以是任何类JSON的结构化数据. 存储的数据不会

HTML5 Web存储--localStorage/sessionStorage

HTML5提供了2种在客户端存储的方法: 1.localStorage--没有时间限制的数据存储 2.sessionStorage --针对一个session的数据存储,会话结束时会被清空 一.作用域 作用域 localStorage在相同的协议.主机名.端口下,就能读取/修改到同一份localStorage数据 sessionStorage在上述的条件下还要求在同一个窗口,也就是只要关闭了浏览器(包括关闭标签页),就会被清空 二.VS cookie: 1.存储数据更多 ( cookie只有4k

web本地存储(localStorage、sessionStorage)

对浏览器来说,使用 Web Storage 存储键值对比存储 Cookie 方式更直观,而且容量更大,它包含两种:localStorage 和 sessionStorage sessionStorage(临时存储) :为每一个数据源维持一个存储区域,在浏览器打开期间存在,包括页面重新加载 localStorage(长期存储) :与 sessionStorage 一样,但是浏览器关闭后,数据依然会一直存 1. 保存数据到本地 sessionStorage.setItem('key', '你的数据'

HTML5 Web存储(Web Storage)(2)

Web Storage是HTML5引入的一个非常重要的功能,在前端开发中经常用到,可以在客户端本地存储数据,类似HTML4的cookie,但可实现功能要比cookie强大的多,cookie大小被限制在4KB,Web Storage官方建议为每个网站5MB.Web Storage又分为两种: sessionStorage     localStorage 从字面意思就可以很清楚的看出来,sessionStorage将数据保存在session中,浏览器关闭也就没了:而localStorage则一直将