本地存储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 相关文章推荐
Javascript操作cookie的函数代码
Oct 03 Javascript
jQuery使用fadeout实现元素渐隐效果的方法
Mar 27 Javascript
用javascript实现自动输出网页文本
Jul 30 Javascript
js判断上传文件后缀名是否合法
Jan 28 Javascript
谈一谈jQuery核心架构设计
Mar 28 Javascript
关于JS中setTimeout()无法调用带参函数问题的解决方法
Jun 21 Javascript
探究Vue.js 2.0新增的虚拟DOM
Oct 20 Javascript
jQuery实现文字自动横移
Jan 08 Javascript
vue-router项目实战总结篇
Feb 11 Javascript
vue.js 添加 fastclick的支持方法
Aug 28 Javascript
mpvue微信小程序多列选择器用法之省份城市选择的实现
Mar 07 Javascript
js 对象使用的小技巧实例分析
Nov 08 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
PHP提取数据库内容中的图片地址并循环输出
2010/03/21 PHP
PHP 微信支付类 demo
2015/11/30 PHP
php实现URL加密解密的方法
2016/11/17 PHP
javascrpt绑定事件之匿名函数无法解除绑定问题
2012/12/06 Javascript
利用javascript数组长度循环数组内所有元素
2013/12/27 Javascript
使用jQuery实现验证上传图片的格式与大小
2014/12/03 Javascript
详解Backbone.js框架中的模型Model与其集合collection
2016/05/05 Javascript
vuex state及mapState的基础用法详解
2018/04/19 Javascript
vue如何在自定义组件中使用v-model
2018/05/14 Javascript
vue中如何实现pdf文件预览的方法
2018/07/12 Javascript
vue+element+Java实现批量删除功能
2019/04/08 Javascript
vue路由权限校验功能的实现代码
2020/06/07 Javascript
vue实现评价星星功能
2020/06/30 Javascript
[06:24]DOTA2 2015国际邀请赛中国区预选赛第二日TOP10
2015/05/27 DOTA
python简单文本处理的方法
2015/07/10 Python
在Python中的Django框架中进行字符串翻译
2015/07/27 Python
python实现简单socket通信的方法
2016/04/19 Python
python基础教程项目四之新闻聚合
2018/04/02 Python
Python使用pyodbc访问数据库操作方法详解
2018/07/05 Python
学生信息管理系统Python面向对象版
2019/01/30 Python
python实现字符串加密成纯数字
2019/03/19 Python
浅析python标准库中的glob
2020/03/13 Python
python使用自定义钉钉机器人的示例代码
2020/06/24 Python
CSS图片翻转动画技术详解(IE也实现了)
2014/04/03 HTML / CSS
HTML5中的Article和Section元素认识及使用
2013/03/22 HTML / CSS
美国办公用品购物网站:Quill.com
2016/09/01 全球购物
大一期末自我鉴定
2013/12/13 职场文书
广告学毕业生求职信
2014/01/30 职场文书
个人学习群众路线心得体会
2014/11/05 职场文书
2014小学教师年度考核工作总结
2014/12/03 职场文书
长城导游词300字
2015/01/30 职场文书
公司业务员管理制度
2015/08/05 职场文书
团队合作精神学习心得体会
2016/01/19 职场文书
《折线统计图》教学反思
2016/02/22 职场文书
pytorch 如何使用float64训练
2021/05/24 Python
【海涛dota解说】DCG联赛第一周 LGD VS DH
2022/04/01 DOTA