本地存储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 相关文章推荐
Jquery 设置标题的自动翻转
Oct 03 Javascript
用js将内容复制到剪贴板兼容浏览器
Mar 18 Javascript
浅谈javascript中的DOM方法
Jul 16 Javascript
BootStrap.css 在手机端滑动时右侧出现空白的原因及解决办法
Jun 07 Javascript
Javascript 获取鼠标当前的位置实现方法
Oct 27 Javascript
jQuery中select与datalist制作下拉菜单时的区别浅析
Dec 30 Javascript
JS实现仿饿了么在浏览器标签页失去焦点时网页Title改变
Jun 01 Javascript
Node.js开发第三方微信公众平台
Jun 05 Javascript
jQuery实现常见的隐藏与展示列表效果示例
Jun 04 jQuery
解决使用layui对select append元素无效或者未及时更新的问题
Sep 18 Javascript
解决vue.js提交数组时出现数组下标的问题
Nov 05 Javascript
适用于 Vue 的播放器组件Vue-Video-Player操作
Nov 16 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 json_encode中文乱码问题的解决办法
2013/09/09 PHP
destoon出现验证码不显示时的紧急处理方法
2014/08/22 PHP
PHP中配置IIS7实现基本身份验证的方法
2015/09/24 PHP
验证坐标在某坐标区域内php代码
2016/10/08 PHP
javascript 关于# 和 void的区别分析
2009/10/26 Javascript
判断客户端浏览器是否安装了Flash插件的多种方法
2010/08/11 Javascript
js实现用户离开页面前提示是否离开此页面的方法(包括浏览器按钮事件)
2015/07/18 Javascript
jquery实现可自动收缩的TAB网页选项卡代码
2015/09/06 Javascript
AngularJs 指令详解及示例代码
2016/09/01 Javascript
vue 实现 tomato timer(蕃茄钟)实例讲解
2017/07/24 Javascript
Vue-cli创建项目从单页面到多页面的方法
2017/09/20 Javascript
基于Vue实现可以拖拽的树形表格实例详解
2018/10/18 Javascript
p5.js绘制创意自画像
2019/11/04 Javascript
jquery制作的移动端购物车效果完整示例
2020/02/24 jQuery
Vue中key的作用示例代码详解
2020/06/10 Javascript
js实现mp3录音通过websocket实时传送+简易波形图效果
2020/06/12 Javascript
vue-cli+webpack项目打包到服务器后,ttf字体找不到的解决操作
2020/08/28 Javascript
Python使用爬虫猜密码
2016/02/19 Python
Python while 循环使用的简单实例
2016/06/08 Python
Python加密方法小结【md5,base64,sha1】
2017/07/13 Python
python实现五子棋人机对战游戏
2020/03/25 Python
python paramiko远程服务器终端操作过程解析
2019/12/14 Python
python 监控logcat关键字功能
2020/09/04 Python
CSS3+DIV实现漂亮的动画彩色标签
2016/06/16 HTML / CSS
CSS3中的clip-path使用攻略
2015/08/03 HTML / CSS
CSS3 linear-gradient线性渐变生成加号和减号的方法
2017/11/21 HTML / CSS
HTML5中通过li-canvas轻松实现单图、多图、圆角图绘制,单行文字、多行文字等
2018/11/30 HTML / CSS
C语言编程题
2015/03/09 面试题
金蝶的一道SQL笔试题
2012/12/18 面试题
应届毕业生求职信范文
2014/05/08 职场文书
课外活动总结
2015/02/04 职场文书
试用期工作表现自我评价
2015/03/06 职场文书
幼儿园感恩节活动总结
2015/03/24 职场文书
民事诉讼答辩状范文
2015/05/21 职场文书
公司业务员管理制度
2015/08/05 职场文书
Python中time与datetime模块使用方法详解
2022/03/31 Python