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. YUV相关积累

    关于yuv 格式-Semi Planar和Planar https://www.cnblogs.com/welen/articles/5454315.html

  2. Python程序基本知识

    Python程序基本知识 一. 数据类型与变量 1.1 变量 **变量:**在Python中不需要事先声明变量名及其类型,直接赋值即可创建各种类型的变量 x='Hello World' #创建了整型变 ...

  3. Flutter ChartSpace:通过跨端 Canvas 实现图表库

    基于Flutter 的图形语法库,通过跨端 Canvas ,将基于 Javascript 的图形语法库 ChartSpace 扩展至 Flutter 端 作者:字节跳动终端技术--胡珀 背景 数据平台 ...

  4. Python安装包报错:PackagesNotFoundError: The following packages are not available from current channels

    以安装SimpleITK包为例,安装时,显示下图错误 conda install SimpleITK 按以下操作完成包安装 anaconda search -t conda SimpleITK #查询 ...

  5. web Javascript360°全景实现

    360 全景浏览是一种性价比很高的虚拟现实解决方案,给人一种全新的浏览体验,让你足不出户就能身临其境地感受到现场的环境.该技术被广泛地应用在房产.酒店.家居等领域. 下面我们使用三种方法讨论一个 36 ...

  6. 使用Vscode和Cmake打造跨平台的C++ IDE

    准备工作 Viusal Studio Code 64位 :Download Visual Studio Code - Mac, Linux, Windows Cmake 3.4 :Download | ...

  7. map, reduce和filter(函数式编程)

    # map可以用于对可遍历结构的每个元素执行同样的操作,批量操作: map(lambda x: x**2, [1, 2, 3, 4]) # [1, 4, 9, 16] map(lambda x, y: ...

  8. 使用flask进行mock接口

    在测试日常过程中,我们经常会遇到因为环境问题,或者是因为上下游,前后端开发进度不一,提测时间不一等情况.这时候我们可以通过mock的方式去完成一些操作.今天给大家分享一个通过flask去mock接口, ...

  9. InnoDB 锁的类型

    一.全局锁 mysql> flush table with read lock; FTWRL 会对整个实例加只读锁.会阻塞所有线程读以外的所有操作.查看线程状态 State: Waiting f ...

  10. JAVA 线上问题排查方法

    CPU 磁盘 内存 GC问题 网络 线上故障主要会包括cpu.磁盘.内存以及网络问题,而大多数故障可能会包含不止一个层面的问题,所以进行排查时候尽量四个方面依次排查一遍. 同时例如jstack.jma ...