当前位置: 首页 > news >正文

localStorage和sessionStorage

H5新特性之一:本地存储lacalStorage

优点:

  1.解决了cookie本地存储空间不足的问题(cookie中每条cookie的存储空间为4k),localStorage一般浏览器支持的是5m,视浏览器而定

  2. localStorage会可以将第一次请求的数据直接存储到本地,这个相当于一个5M大小的针对于前端页面的数据库,相比于cookie可以节约带宽

缺点:

  1.不同浏览器大小不统一,并且在IE8以上的IE版本才支持localStorage这个属性

  2.所有的浏览器中都会把localStorage的值类型限定为string类型,对JSON对象类型需要一些转换

  3.localStorage在浏览器的隐私模式下面是不可读取的

  4.localStorage本质上是对字符串的读取,如果存储内容多的话会消耗内存空间,会导致页面变卡

  5.localStorage不能被爬虫抓取到

区别:localStorage属于永久性存储;sessionStorage当会话结束的时候,其中的键值对会被清空

用法:

  1.清空:

localStorage.clear() // undefined 
localStorage //Storage {length: 0}

  2.存储:

localStorage.setItem("name","caibin") //存储名字为name值为caibin的变量
localStorage.name = "caibin"; // 等价于上面的命令 
localStorage // Storage{name: "caibin", length: 1} 读取数据

  3.读取:

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)));
}

  4.删除某个变量:

localStorage.removeItem("name"); //undefined
localStorage // Storage {length: 0} 之前保存的name变量从localStorage里删除了

  5.检查localStorage里是否保存某个变量:

localStorage.hasOwnProperty('name') // true
localStorage.hasOwnProperty('sex') // false

  6.将数组转为本地字符串:

var arr = ['aa','bb','cc']; // ["aa","bb","cc"]
localStorage.arr = arr //["aa","bb","cc"]
localStorage.arr.toLocaleString(); // "aa,bb,cc"

  7.将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); // 打印出原先对象

转载于:https://www.cnblogs.com/wccc/p/9889776.html

相关文章:

  • 驻波比
  • 【Python】多进程#181101
  • 使用前端开发工具包WijmoJS - 创建自定义DropDownTree控件(包含源代码)
  • 基于Javascript, Springboot的管理系统报表查询页面代码设计
  • java 运算符,流程控制语句,键盘录入
  • 【转】在Win7的IIS上搭建FTP服务及用户授权
  • layui-学习02-全局样式
  • Mac OS 系统占用储存空间太大怎么办?
  • 生产管理软件改进生产流程
  • 双十一移动端页面总结
  • PYTHON——多进程:概念
  • Android开发 - 掌握ConstraintLayout(四)创建基本约束
  • Python爬取新浪微博用户信息及微博内容
  • IIS7应用程序池集成和经典的区别
  • Es学习第二课, ES安装和客户端使用
  • JavaScript 如何正确处理 Unicode 编码问题!
  • @angular/forms 源码解析之双向绑定
  • CAP 一致性协议及应用解析
  • C学习-枚举(九)
  • ES学习笔记(12)--Symbol
  • Git同步原始仓库到Fork仓库中
  • log4j2输出到kafka
  • SpringCloud集成分布式事务LCN (一)
  • Vue UI框架库开发介绍
  • Vue实战(四)登录/注册页的实现
  • 从重复到重用
  • 机器学习学习笔记一
  • 前端 CSS : 5# 纯 CSS 实现24小时超市
  • 使用 QuickBI 搭建酷炫可视化分析
  • 手写一个CommonJS打包工具(一)
  • 源码安装memcached和php memcache扩展
  • [地铁译]使用SSD缓存应用数据——Moneta项目: 低成本优化的下一代EVCache ...
  • $redis-setphp_redis Set命令,php操作Redis Set函数介绍
  • (03)光刻——半导体电路的绘制
  • (1综述)从零开始的嵌入式图像图像处理(PI+QT+OpenCV)实战演练
  • (pojstep1.3.1)1017(构造法模拟)
  • (蓝桥杯每日一题)love
  • (三)终结任务
  • (图)IntelliTrace Tools 跟踪云端程序
  • (转)linux 命令大全
  • ***原理与防范
  • .NET 2.0中新增的一些TryGet,TryParse等方法
  • .NET 5种线程安全集合
  • .NET CF命令行调试器MDbg入门(二) 设备模拟器
  • .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖
  • .NET 中让 Task 支持带超时的异步等待
  • [ 云计算 | AWS ] AI 编程助手新势力 Amazon CodeWhisperer:优势功能及实用技巧
  • [Angular] 笔记 7:模块
  • [BZOJ4337][BJOI2015]树的同构(树的最小表示法)
  • [excel与dict] python 读取excel内容并放入字典、将字典内容写入 excel文件
  • [GPT]Andrej Karpathy微软Build大会GPT演讲(上)--GPT如何训练
  • [Hadoop in China 2011] 蒋建平:探秘基于Hadoop的华为共有云
  • [Jenkins] Docker 安装Jenkins及迁移流程
  • [js]js设计模式小结
  • [leetcode]56. Merge Intervals归并区间