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. Ajax 实战(一)

    目录 Ajax 实战(一) 简介 入门案例 基于Ajax进行登录验证 HTTP请求编码格式和报文 Content-Type=application/x-www-form-urlencoded Cont ...

  2. WPF优秀组件推荐之MahApps

    概述 MahApps是一套基于WPF的界面组件,通过该组件,可以使用较小的开发成本实现一个相对很好的界面效果. 官方网站:MahApps.Metro - Home 开源代码:MahApps · Git ...

  3. cmd 连接宝塔终端

  4. 如何用webgl(three.js)搭建处理3D隧道、3D桥梁、3D物联网设备、3D高速公路、三维隧道桥梁设备监控-第十一课

    开篇废话: 跟之前的文章一样,开篇之前,总要写几句废话,大抵也是没啥人看仔细文字,索性我也想到啥就聊啥吧. 这次聊聊疫情,这次全国多地的疫情挺严重的,本人身处深圳,深圳这几日报导都是几十几十的新增病例 ...

  5. CF1428B题解

    打比赛的时候sb了,用了一个似乎原本可以不用的东西来找环... 首先,根据题意,我们可以连成一张图,而蛇能不能回到自己的家, 只需要在一个环上就行了. 问题是怎么找环,我用了 Tarjan... 具体 ...

  6. 【面经】MySql常见问题

    1. 数据库三范式是什么? 1. 第一范式(1NF):字段具有原子性,不可再分.(所有关系型数据库系统都满足第一范式数据库表中的字段都是单一属性的,不可再分) 2. 第二范式(2NF)是在第一范式(1 ...

  7. github:git clone下载加速以及vim-plug下载插件加速

    git clone 下载加速 1. 先在github将仓库地址复制下来 2. git clone时将https://github.com/* 改为https://gitclone.com/github ...

  8. 火狐firebug&firepath插件安装

    火狐浏览器下掉了firebug和firepath插件,用户即使下载了火狐55以下的版本,也无法查找到这两个插件,以下方法可以解决哦 第1步:下载火狐55以内版本安装包,安装时迅速设置禁止自动更新版本, ...

  9. Windows10 1809版本Windows自动更新服务无法禁用问题解决方案

    症状 Windows Update服务已经在服务管理器中禁用,但是莫名奇妙的会被自动设置为手动,并会自动下载补丁.原因 微软加强了系统更新服务的保护措施,导致按照原有的禁用服务方法,能够随时被恢复.解 ...

  10. kubernetes修改ingress默认端口

    kubectl edit daemonset nginx-ingress-controller -n ingress-nginx containers: - args: - /nginx-ingres ...