本地存储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异步调用页面后台方法&amp;#8207;(asp.net)
Mar 01 Javascript
jquery操作checked属性以及disabled属性的多种方法
Jun 20 Javascript
基于jQuery+JSON的省市二三级联动效果
Jun 05 Javascript
jQuery实现平滑滚动页面到指定锚点链接的方法
Jul 15 Javascript
纯javascript制作日历控件
Jul 17 Javascript
js实现温度计时间样式代码分享
Aug 21 Javascript
javascript bom是什么及bom和dom的区别
Nov 26 Javascript
php基于redis处理session的方法
Mar 14 Javascript
jQuery实现下拉加载功能实例代码
Apr 01 Javascript
微信小程序 条件渲染详解
Oct 09 Javascript
利用npm 安装删除模块的方法
May 15 Javascript
Vue数字输入框组件示例代码详解
Jan 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
PHP读取配置文件类实例(可读取ini,yaml,xml等)
2015/07/28 PHP
WordPres对前端页面调试时的两个PHP函数使用小技巧
2015/12/22 PHP
iis 7下安装laravel 5.4环境的方法教程
2017/06/14 PHP
php设计模式之组合模式实例详解【星际争霸游戏案例】
2020/03/27 PHP
JavaScript创建命名空间(namespace)的最简实现
2007/12/11 Javascript
jQuery UI-Draggable 参数集合
2010/01/10 Javascript
基于jQuery的的一个隔行变色,鼠标移动变色的小插件
2010/07/06 Javascript
Jquery颜色选择器ColorPicker实现代码
2012/11/14 Javascript
JavaScript中的noscript元素属性位置及作用介绍
2013/04/11 Javascript
基于 Docker 开发 NodeJS 应用
2014/07/30 NodeJs
jQuery中has()方法用法实例
2015/01/06 Javascript
JS HTML5拖拽上传图片预览
2016/07/18 Javascript
Vue.js 2.0 移动端拍照压缩图片上传预览功能
2017/03/06 Javascript
jquery拼接ajax 的json和字符串拼接的方法
2017/03/11 Javascript
vue中实现滚动加载更多的示例
2017/11/08 Javascript
JS动态添加元素及绑定事件造成程序重复执行解决
2017/12/07 Javascript
提升node.js中使用redis的性能遇到的问题及解决方法
2018/10/30 Javascript
一起来了解一下JavaScript的预编译(小结)
2021/03/01 Javascript
python中使用百度音乐搜索的api下载指定歌曲的lrc歌词
2014/07/18 Python
Python+微信接口实现运维报警
2016/08/27 Python
python导出chrome书签到markdown文件的实例代码
2017/12/27 Python
Python操作MongoDB数据库的方法示例
2018/01/04 Python
python 拼接文件路径的方法
2018/10/23 Python
python简单实现矩阵的乘,加,转置和逆运算示例
2019/07/10 Python
python 抓取知乎指定回答下视频的方法
2020/07/09 Python
详解css3自定义滚动条样式写法
2017/12/25 HTML / CSS
css3设置box-pack和box-align让div里面的元素垂直居中
2014/09/01 HTML / CSS
香港草莓网土耳其网站:Strawberrynet TR
2017/03/02 全球购物
先进个人获奖感言
2014/01/24 职场文书
毕业寄语大全
2014/04/09 职场文书
团拜会策划方案
2014/06/07 职场文书
2015年城市管理工作总结
2015/05/23 职场文书
2015银行年终工作总结范文
2015/05/26 职场文书
SpringRetry重试框架的具体使用
2021/07/25 Java/Android
JavaScript执行机制详细介绍
2021/12/06 Javascript
java.util.NoSuchElementException原因及两种解决方法
2022/06/28 Java/Android