本地存储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 相关文章推荐
PJBlog插件 防刷新的在线播放器
Oct 25 Javascript
JavaScript判断两种格式的输入日期的正确性的代码
Mar 25 Javascript
Javascript技巧之不要用for in语句对数组进行遍历
Oct 20 Javascript
js限制checkbox选中个数以限制六个为例
Jul 15 Javascript
javascript的tab切换原理与效果实现方法
Jan 10 Javascript
微信小程序 wxapp视图容器 view详解
Oct 31 Javascript
Vue.js路由组件vue-router使用方法详解
Dec 02 Javascript
Javascript(es2016) import和require用法和区别详解
Aug 11 Javascript
Vue中render方法的使用详解
Jan 26 Javascript
Vue项目全局配置微信分享思路详解
May 04 Javascript
node.js利用socket.io实现多人在线匹配联机五子棋
May 31 Javascript
webpack 代码分离优化快速指北
May 18 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
同时提取多条新闻中的文本一例
2006/10/09 PHP
使用ob系列函数实现PHP网站页面静态化
2014/08/13 PHP
php简单判断文本编码的方法
2015/07/30 PHP
PHP 中提示undefined index如何解决(多种方法)
2016/03/16 PHP
Yii2.0使用阿里云OSS的SDK上传图片、下载、删除图片示例
2017/09/20 PHP
document.all与WEB标准
2020/05/13 Javascript
javascript String 的扩展方法集合
2008/06/01 Javascript
学习ExtJS(二) Button常用方法
2009/10/07 Javascript
JS实现闪动的title消息提醒效果
2014/06/20 Javascript
jQuery对html元素的取值与赋值实例详解
2015/12/18 Javascript
微信小程序 限制1M的瘦身技巧与方法详解
2017/01/06 Javascript
ionic2自定义cordova插件开发以及使用(Android)
2017/06/19 Javascript
JavaScript实现区块链
2018/03/14 Javascript
vue axios整合使用全攻略
2018/05/24 Javascript
如何为你的JavaScript代码日志着色详解
2019/04/08 Javascript
Python的迭代器和生成器使用实例
2015/01/14 Python
在Python中使用第三方模块的教程
2015/04/27 Python
Python实现短网址ShortUrl的Hash运算实例讲解
2015/08/10 Python
python脚本爬取字体文件的实现方法
2017/04/29 Python
python中学习K-Means和图片压缩
2017/11/20 Python
Python利用字典将两个通讯录文本合并为一个文本实例
2018/01/16 Python
Python matplotlib通过plt.scatter画空心圆标记出特定的点方法
2018/12/13 Python
Python3+OpenCV2实现图像的几何变换(平移、镜像、缩放、旋转、仿射)
2019/05/13 Python
python中pygame安装过程(超级详细)
2019/08/04 Python
python3 pathlib库Path类方法总结
2019/12/26 Python
在python中使用pymysql往mysql数据库中插入(insert)数据实例
2020/03/02 Python
英国休闲奢华的缩影:Crew Clothing
2019/05/05 全球购物
培训讲师邀请函
2014/01/10 职场文书
竞选演讲稿范文大全
2014/05/12 职场文书
学校校庆演讲稿
2014/05/22 职场文书
中职毕业生自我鉴定范文(3篇)
2014/09/28 职场文书
党的群众路线教育实践活动个人对照检查材料(四风)
2014/11/05 职场文书
收银员岗位职责范本
2015/04/07 职场文书
观看禁毒宣传片后的感想
2015/08/11 职场文书
MySQL Threads_running飙升与慢查询的相关问题解决
2021/05/08 MySQL
Redis+AOP+自定义注解实现限流
2022/06/28 Redis