html5新增了在客户端存储数据的新方法:
1.localStorage - 没有时间限制的数据存储;
2.sessionStorage - 针对一个session的数据存储,当用户关闭浏览器窗口后,数据会被删除。

浏览器支持程度

注意到,IE8以及以上版本是支持localStorage和sessionStorage的,但是需要注意的是,IE8-IE10中是需要服务器或者localhost才能使用。

使用方法

localStorage和sessionStorage的使用方法是一致的,区别在于:
localStorage方法存储的数据没有时间限制。第二天、第二周或下一年之后,数据依然可用。而sessionStorage 方法针对一个 session 进行数据存储。当用户关闭浏览器窗口后,数据会被删除。

创建localStorage
localStorage.setItem('user','轮回韩');

localStorage.user='轮回韩';
访问localStorage
localStorage.getItem('user','轮回韩');      //与localStorage.setItem对应

localStorage.user;       //与设置时localStorage.user='轮回韩'对应

存储数组和对象

localStorage都是以字符串形式来存储数据的,即使你存储的是数组和对象,localStorage也会将数组和对象以字符串的形式存储。

存储对象

var obj={
name:'轮回韩',
age:'100',
sex:'女'
};
console.log(obj); //输出 Object {name: "轮回韩", age: "100", sex: "女"}
console.log(typeof obj); //输出 object window.localStorage.setItem('people',obj); console.log(window.localStorage.getItem('people')); //输出 [object Object]
console.log(typeof window.localStorage.getItem('people')); //输出 string

存储数组

var arr=[2,3,5];
console.log(arr); //输出 [2, 3, 5]
console.log(typeof arr); //输出 object window.localStorage.setItem('num',arr); console.log(window.localStorage.getItem('num')); //输出 2,3,5
console.log(typeof window.localStorage.getItem('num')); //输出 string

解决办法

其实大多时候我们想要存储的就是数组和对象,这时候该怎么办呢?
解决办法就是存储的时候用JSON.stringify转换后再存储,获取的时候用JSON.parse()转换后再获取。

 var obj={
name:'轮回韩',
age:'100',
sex:'女'
};
console.log(obj); //Object {name: "轮回韩", age: "100", sex: "女"}
console.log(typeof obj); //object window.localStorage.setItem('people',JSON.stringify(obj)); console.log(JSON.parse(window.localStorage.getItem('people'))); //Object {name: "轮回韩", age: "100", sex: "女"}
console.log(typeof JSON.parse(window.localStorage.getItem('people'))); //object

HTML5 localStorage使用方法及注意点的更多相关文章

  1. 原生JavaScript常用本地浏览器存储方法四(HTML5 LocalStorage sessionStorage)

    HTML5 LocalStorage浏览器的支持的情况如上图,IE在8.0的时候就支持了.不过需要注意的是,IE测试的时候需要服务器环境(或者localhost). 测试自然是检测浏览器是否支持本地存 ...

  2. HTML5 LocalStorage 本地存储

    HTML5 LocalStorage 本地存储 说到本地存储,这玩意真是历尽千辛万苦才走到HTML5这一步,之前的历史大概如下图所示: 最早的Cookies自然是大家都知道,问题主要就是太小,大概也就 ...

  3. (转载)HTML5 LocalStorage 本地存储

    原文地址:http://www.cnblogs.com/xiaowei0705/archive/2011/04/19/2021372.html HTML5 LocalStorage 本地存储 说到本地 ...

  4. localStorage存值取值以及存取JSON,以及基于html5 localStorage的购物车

    localStorage.setItem("key","value");//存储变量名为key,值为value的变量 localStorage.key = &q ...

  5. HTML5 LocalStorage 本地存储(转)

    原文:http://www.cnblogs.com/xiaowei0705/archive/2011/04/19/2021372.html HTML5 LocalStorage 本地存储 说到本地存储 ...

  6. 完美解决IE(IE6/IE7/IE8)不兼容HTML5标签的方法

    完美解决IE(IE6/IE7/IE8)不兼容HTML5标签的方法   HTML5的语义化标签以及属性,可以让开发者非常方便地实现清晰的web页面布局,加上CSS3的效果渲染,快速建立丰富灵活的web页 ...

  7. HTML5 canvas translate() 方法

    HTML5 canvas translate() 方法 translate() 方法重新映射画布上的 (0,0) 位置.

  8. 低版本浏览器支持HTML5标签的方法

    最近刷了一道面试题,是关于低版本浏览器支持HTM5标签的写法,在网上找了一些,都行之有效,但是缺少整体总结,所以在这里总结一下,方便其他人过来阅读. IE低版本需要支持HTML5标签: 方法1.传统引 ...

  9. HTML5 Shiv完美解决IE(IE6/IE7/IE8)不兼容HTML5标签的方法

    这篇文章主要介绍了HTML5 Shiv完美解决IE(IE6/IE7/IE8)不兼容HTML5标签的方法,需要的朋友可以参考下 HTML5的语义化标签以及属性,可以让开发者非常方便地实现清晰的web页面 ...

随机推荐

  1. Winform调用存储过程

    数据表及数据准备: create table Member ( MemberId int primary key identity(1,1), MemberAccount nvarchar(20) u ...

  2. MM32F0140 UART1中断接收和UART1中断发送

    目录: 1.MM32F0140简介 2.初始化MM32F0140 UART1和NVIC中断 3.编写MM32F0140 UART1使能中断发送函数 4.编写MM32F0140 UART1中断接收和中断 ...

  3. python+selenium+pycharm使用

    上一章节讲了安装python及selenium,该章节讲解下使用pycharm编辑器进行代码编写 下载地址:http://www.jetbrains.com/pycharm/download/#sec ...

  4. hive从入门到放弃(一)——初识hive

    之前更完了<Kafka从入门到放弃>系列文章,本人决定开新坑--hive从入门到放弃,今天先认识一下hive. 没看过 Kafka 系列的朋友可以点此传送阅读: <Kafka从入门到 ...

  5. insert一个表的数据到另外一个表

    insert into a(real_name,is_main,mobile,password,property_id,create_time) select linkman as real_name ...

  6. 自己动手写Vector【Cherno C++教程】

    动手写一个Vector 本文是对<最好的C++教程>的动手写数据结构部分的一个整理,主要包含91p动手写Array数组和92p动手写Vector数组的内容. 自己动手来写这些数据结构是学习 ...

  7. docker学习笔记(3)- 镜像

    简介 在docker学习笔记(1)- 架构概述一节中可以看到镜像是docker三大组件之一,可以将Docker镜像类比为虚拟机的模版. 镜像由多个层组成,每层叠加之后从外部看就像一个独立的对象,镜像的 ...

  8. jmeter关于入参转码encode问题

    我们的工作中,通过抓包经常会发现有很多入参都是被encode过一层,形成了如上图所示的样子: 这些参数我们是可以通过fiddler去转码的:但是如果我们要做jmeter的脚本,不可能每一次都手动去转码 ...

  9. git error: unable to create file Invalid argument

    git error: unable to create file xxxx  Invalid argument 原因: mac  上创建的文件名里有冒号,这在windows 上是不允许的. 解决方式: ...

  10. 解决使用DBeaver连接MySQL时报错-The server time zone value '�й���׼ʱ��' is unrecognized or represents more than one time zone.

    解决使用DBeaver连接MySQL时报错,其实提示很明显. The server time zone value '�й���׼ʱ��' is unrecognized or represents ...