LocalStorage用法
LocalStorage用法
LocalStorage用法一、什么是LocalStorage
1、在HTML5中,新加入了一个localStorage特性,这个特性主要是用来作为本地存储来使用的,解决了cookie存储空间不足的问题(cookie中每条cookie的存储空间为4k),localStorage中一般浏览器支持的是5M大小,这个在不同的浏览器中localStorage会有所不同。
2、localStorage的使用也是遵循同源策略的,所以不同的网站直接是不能共用相同的localStorage
二、LocalStorage优缺点
LocalStorage优点
1、localStorage拓展了cookie的4K限制
2、不会随http请求一起发送
3、localstorage用于持久化的本地存储,除非主动删除数据,否则数据是没有时间限制
LocalStorage缺点
1、浏览器的大小不统一,并且在IE8以上的IE版本才支持localStorage这个属性
2、目前所有的浏览器中都会把localStorage的值类型限定为string类型,这个在对我们日常比较常见的JSON对象类型需要一些转换
3、localStorage在浏览器的隐私模式下面是不可读取的
4、localStorage本质上是对字符串的读取,如果存储内容多的话会消耗内存空间,会导致页面变卡
5、localStorage不能被爬虫抓取到
三、LocalStorage常用的方法
名称 | 作用 |
---|---|
clear | 清空localStorage上存储的数据 |
getItem | 读取数据 |
hasOwnProperty | 检查localStorage上是否保存了变量x,需要传入x |
key | 读取第i个数据的名字或称为键值(从0开始计数) |
length | localStorage存储变量的个数 |
propertyIsEnumerable | 用来检测属性是否属于某个对象的 |
removeItem | 删除某个具体变量 |
setItem | 存储数据 |
toLocaleString | 将(数组)转为本地字符串 |
valueOf | 获取所有存储的数据 |
四、在使用localStorage的时候,我们需要判断浏览器是否支持localStorage这个属性
if(!window.localStorage){
alert("浏览器支持localstorage");
return false;
}else{
//主逻辑业务
}
五、LocalStorage使用实例
1、localStorage的写入
if(!window.localStorage){
alert("浏览器支持localstorage");
return false;
}else{
var storage=window.localStorage;
//写入a字段,方式一
storage["a"]=1;
//写入b字段,方式二
storage.a=1;
//写入c字段,方式三
storage.setItem("c",3);
console.log(typeof storage["a"]);
console.log(typeof storage["b"]);
console.log(typeof storage["c"]);
}
2、localStorage的读取
if(!window.localStorage){
alert("浏览器支持localstorage");
}else{
var storage=window.localStorage;
//写入a字段
storage["a"]=1;
//写入b字段
storage.a=1;
//写入c字段
storage.setItem("c",3);
console.log(typeof storage["a"]);
console.log(typeof storage["b"]);
console.log(typeof storage["c"]);
//第一种方法读取
var a=storage.a;
console.log(a);
//第二种方法读取
var b=storage["b"];
console.log(b);
//第三种方法读取
var c=storage.getItem("c");
console.log(c);
}
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)));
}
3、localStorage的修改
if(!window.localStorage){
alert("浏览器支持localstorage");
}else{
var storage=window.localStorage;
//写入a字段
storage["a"]=1;
//写入b字段
storage.b=1;
//写入c字段
storage.setItem("c",3);
console.log(storage.a);
/*修改localStorage*/
storage.a=4;
console.log(storage.a);
}
4、检查localStorage里是否保存某个变量
localStorage.hasOwnProperty('name') // true
localStorage.hasOwnProperty('age') // false
5、清空localStorage
var storage=window.localStorage;
storage.a=1;
storage.setItem("c",3);
console.log(storage);
storage.clear();//清空localStorage
console.log(storage);
6、删除某个变量
var storage=window.localStorage;
storage.a=1;
storage.setItem("c",3);
console.log(storage);
storage.removeItem("a");//删除
console.log(storage.a);
7、将数组转为本地字符串
var arr = ['aa','bb','cc']; // ["aa","bb","cc"]
localStorage.arr = arr //["aa","bb","cc"]
localStorage.arr.toLocaleString(); // "aa,bb,cc"
8、将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); // 打印出原先对象
- css弹出遮罩层页面不可滑动(Html5页面点击遮罩层背景关闭遮罩层)
- html5滑动刷新(HTML5手指下滑弹出负一屏阻止移动端浏览器内置下拉刷新功能的实现代码)
- webgl api 源码(基于 HTML5 WebGL 实现的医疗物流系统)
- html5能取数据库吗(HTML5 客户端数据库简易使用:IndexedDB)
- html元素和属性的区别(HTML5 HTMLCollection和NodeList的区别详解)
- HTML5 <figure> 、<figcaption>标签
- html5关闭页面代码(HTML5页面无缝闪开的问题及解决方案)
- html5弹出窗口(Html5页面上如何禁止手机虚拟键盘弹出)
- html5如何控制内容(html5拖拽应用记录及注意点)
- html5中canvas标签(html5 canvas绘制网络字体的常用方法)
- h5人脸扫描代码(Html5调用手机摄像头并实现人脸识别的实现)
- html5input标签的默认属性(移动端HTML5 input常见问题小结)
- html5代码之翻页(HTML5实现直播间评论滚动效果的代码)
- html5 postMessage(html5关于外链嵌入页面通信问题postMessage解决跨域通信)
- html5定位教学(Html5 webview元素定位工具的实现)
- html5中的语义化标签有哪些(详解HTML5常用的语义化标签)
- 蒜苔炒鱿鱼(蒜苔炒鱿鱼)
- 远离 五毛食品 洛阳80后妈妈发明的 飞行棋 成校园爆款 玩具(远离五毛食品)
- 失传的古代飞行棋游戏 六博(失传的古代飞行棋游戏)
- 感冒要吃什么药(猫咪感冒要吃什么药)
- 下雪会怎样(下雪怎样画)
- 白蓝色穿搭(白蓝色衣服配什么裤子)
热门推荐
- 阿里云ecs负载均衡(阿里云ECS的CPU100%排查)
- js音乐脚本怎么做(js实现网页音乐播放器)
- 宝塔面板教程全集(宝塔面板开启防盗链并设置自己想要显示的图片)
- 小程序数字化怎么布局(用position:sticky完美解决小程序吸顶问题的实现方法)
- css3动画实现loading(CSS3实现粒子旋转伸缩加载动画)
- 查看SQL SERVER指定数据库中所有的触发器
- mysql数据库怎么换行(MySQL数据中很多换行符和回车符的解决方法)
- react组件之间通信(React传递参数的几种方式)
- jvm运动数据区总结(JVM上高性能数据格式库包Apache Arrow入门和架构详解Gkatziouras)
- 如何减少用户操作网站时的出错率
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9