本地存储localStorage用法详解


Posted in Javascript onJuly 31, 2017

一、什么是localStorage?

在HTML5中,新加入了一个localStorage特性,这个特性主要是用来作为本地存储来使用的,解决了cookie存储空间不足的问题(cookie中每条cookie的存储空间为4k),localStorage中一般浏览器支持的是5M大小,这个在不同的浏览器中localStorage会有所不同。

二、localStorage的优势与局限

localStorage的优势

1、localStorage拓展了cookie的4K限制

2、localStorage会可以将第一次请求的数据直接存储到本地,这个相当于一个5M大小的针对于前端页面的数据库,相比于cookie可以节约带宽,但是这个却是只有在高版本的浏览器中才支持的

localStorage的局限

1、浏览器的大小不统一,并且在IE8以上的IE版本才支持localStorage这个属性

2、目前所有的浏览器中都会把localStorage的值类型限定为string类型,这个在对我们日常比较常见的JSON对象类型需要一些转换

3、localStorage在浏览器的隐私模式下面是不可读取的

4、localStorage本质上是对字符串的读取,如果存储内容多的话会消耗内存空间,会导致页面变卡

5、localStorage不能被爬虫抓取到

localStorage与sessionStorage的唯一一点区别就是localStorage属于永久性存储,而sessionStorage属于当会话结束的时候,sessionStorage中的键值对会被清空。

三、localStorage的使用

清空localStorage

localStorage.clear()  // undefined   
 localStorage      //Storage {length: 0} 存储数据

存储数据

localStorage.setItem("name","caibin") //存储名字为name值为caibin的变量
localStorage.name = "caibin"; // 等价于上面的命令 
localStorage // Storage{name: "caibin", length: 1} 读取数据

读取数据

localStorage.getItem("name") //caibin,读取保存在localStorage对象里名为name的变量的值
localStorage.name // "caibin"
localStorage.valueOf() //读取存储在localStorage上的所有数据
localStorage.key(0) // 读取第一条数据的变量名(键值)
//遍历并输出localStorage里存储的名字和值
for(var i=0; i<localStorage.length;i++){
  console.log('localStorage里存储的第'+i+'条数据的名字为:'+localStorage.key(i)+',值为:'+localStorage.getItem(localStorage.key(i)));
}

删除某个变量

localStorage.removeItem("name"); //undefined
localStorage // Storage {length: 0} 可以看到之前保存的name变量已经从localStorage里删除了

检查localStorage里是否保存某个变量

// 这些数据都是测试的,是在我当下环境里的,只是demo哦~
localStorage.hasOwnProperty('name') // true
localStorage.hasOwnProperty('sex') // false

将数组转为本地字符串

var arr = ['aa','bb','cc']; // ["aa","bb","cc"]
localStorage.arr = arr //["aa","bb","cc"]
localStorage.arr.toLocaleString(); // "aa,bb,cc"

将JSON存储到localStorage里

var students = {
  xiaomin: {
    name: "xiaoming",
    grade: 1
  },
  teemo: {
    name: "teemo",
    grade: 3
  }
}

students = JSON.stringify(students); //将JSON转为字符串存到变量里
console.log(students);
localStorage.setItem("students",students);//将变量存到localStorage里

var newStudents = localStorage.getItem("students");
newStudents = JSON.parse(students); //转为JSON
console.log(newStudents); // 打印出原先对象

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
FireFox JavaScript全局Event对象
Jun 14 Javascript
一个简单的js动画效果代码
Jul 20 Javascript
javascript来定义类的规范小结
Nov 19 Javascript
AJAX 网页保留浏览器前进后退等功能
Feb 12 Javascript
Javascript对象中关于setTimeout和setInterval的this介绍
Jul 21 Javascript
JS中 用户登录系统的解决办法
Apr 15 Javascript
关于Javascript回调函数的一个妙用
Aug 29 Javascript
Angular2  NgModule 模块详解
Oct 19 Javascript
jQuery Masonry瀑布流布局神器使用详解
May 25 jQuery
详解使用angularjs的ng-options时如何设置默认值(初始值)
Jul 18 Javascript
JS实现访问DOM对象指定节点的方法示例
Apr 04 Javascript
Vue+Element-U实现分页显示效果
Nov 15 Javascript
Vue组件模板形式实现对象数组数据循环为树形结构(实例代码)
Jul 31 #Javascript
ES6新特性:使用export和import实现模块化详解
Jul 31 #Javascript
node koa2实现上传图片并且同步上传到七牛云存储
Jul 31 #Javascript
Angular.js初始化之ng-app的自动绑定与手动绑定详解
Jul 31 #Javascript
详解React中的组件通信问题
Jul 31 #Javascript
Angular.js前台传list数组由后台spring MVC接收数组示例代码
Jul 31 #Javascript
Angular.js中数组操作的方法教程
Jul 31 #Javascript
You might like
深入理解require与require_once与include以及include_once的区别
2013/06/05 PHP
PHP面试常用算法(推荐)
2016/07/22 PHP
PHP5.4起内置web服务器使用方法
2016/08/09 PHP
php实现生成PDF文件的方法示例【基于FPDF类库】
2018/07/21 PHP
用正则表达式 动态创建/增加css style script 兼容IE firefox
2009/03/10 Javascript
Script的加载方法小结
2011/01/12 Javascript
jQuery $.data()方法使用注意细节
2012/12/31 Javascript
javascript中数组的sort()方法的使用介绍
2013/12/18 Javascript
bootstrap学习笔记之初识bootstrap
2016/06/21 Javascript
利用原生js和jQuery实现单选框的勾选和取消操作的方法
2016/09/04 Javascript
ion content 滚动到底部会遮住一部分视图的快速解决方法
2016/09/06 Javascript
AngularJS实践之使用NgModelController进行数据绑定
2016/10/08 Javascript
jQuery Dom元素操作技巧
2018/02/04 jQuery
angular6.0开发教程之如何安装angular6.0框架
2018/06/29 Javascript
微信小程序实现的picker多级联动功能示例
2019/05/23 Javascript
详细介绍解决vue和jsp结合的方法
2020/02/06 Javascript
JavaScript设计模式--简单工厂模式定义与应用案例详解
2020/05/23 Javascript
JavaScript点击按钮生成4位随机验证码
2021/01/28 Javascript
[46:43]DOTA2上海特级锦标赛D组小组赛#1 EG VS COL第三局
2016/02/28 DOTA
[02:21]十步杀一人,千里不留行——DOTA2全新英雄天涯墨客展示
2018/08/29 DOTA
python爬虫入门教程之糗百图片爬虫代码分享
2014/09/02 Python
用实例解释Python中的继承和多态的概念
2015/04/27 Python
Python脚本实现自动将数据库备份到 Dropbox
2017/02/06 Python
Python简单实现网页内容抓取功能示例
2018/06/07 Python
解决Pycharm运行时找不到文件的问题
2018/10/29 Python
Python 安装 virturalenv 虚拟环境的教程详解
2020/02/21 Python
Python中使用threading.Event协调线程的运行详解
2020/05/02 Python
Python批量删除mysql中千万级大量数据的脚本分享
2020/12/03 Python
如何用Python和JS实现的Web SSH工具
2021/02/23 Python
CSS3属性选择符介绍
2008/10/17 HTML / CSS
CSS Grid布局教程之浏览器开启CSS Grid Layout汇总
2014/12/30 HTML / CSS
主治医师岗位职责
2013/12/10 职场文书
安全生产责任书
2014/03/12 职场文书
2014年民主评议党员个人总结
2014/09/24 职场文书
单位婚育证明范本
2014/11/21 职场文书
Python如何把不同类型数据的json序列化
2021/04/30 Python