JavaScript中本地存储(LocalStorage)和会话存储(SessionStorage)的使用

目录
  • 前提知识
  • 范例
    • 示例1:将键值对提供给本地存储
    • 示例2: 本地存储中设置键值对
    • 示例3: 获取空值
    • 示例 4:将数组存储在本地存储中
    • 示例 5:从本地存储中获取数组
    • 示例 6:从本地存储中获取数组?
    • 示例 7:清除本地存储
    • 示例 8:仅从本地存储中删除 Name1 键值对
    • 会话存储
  • 总结

我不会告诉你任何定义和概念,上车,读完这篇博客,你就会对本地存储(Local Storage) 和 会话存储(Session Storage)有一个清晰的认识。

前提知识

请按照我以下的步骤来:

1、在任意网页中按F12打开开发者工具

2、单击Application,即应用

3、单击存储,您将在那里看到本地存储和会话存储。

本地存储和会话存储都存储键值对。

本地存储和会话存储的主要区别在于关闭浏览器存储在 会话存储 中的键值对会丢失

范例

现在,让我们通过一些示例来了解如何对本地存储进行操作。

示例1:将键值对提供给本地存储

localStorage.setItem('Name1', 'uiu');

控制台执行,查看效果

让我们看看本地存储的“ typeof ”:

示例2: 本地存储中设置键值对

在上面的示例中,我们看到了 如何在本地存储中设置键值对

现在,让我们了解如何从本地存储中获取键值对

let Name1 = localStorage.getItem('Name1')
console.log(Name1)

示例3: 获取空值

现在,让我们尝试获取一些不存在的值。

let Name2 = localStorage.getItem('Name2');
console.log(Name2)

如果您尝试从不存在的本地存储中获取某些内容,则结果为 null

很多时候我们希望将数组存储在本地存储中,因为数组很容易使用(我们有很多内置的数组方法)。

但是,本地存储的一个限制是它将数组存储为字符串。让我们看看我的意思:

// 本地存储
localStorage.setItem('WebSite', 'uiuing.com');

// 定义ProgrammingLanguage数组
let ProgrammingLanguage = ['Java', 'Python', 'JavaScript', 'GO+']
// 本地存储存储 ProgrammingLanguage数组
localStorage.setItem('favoriteProgrammingLanguage', ProgrammingLanguage);

为了克服这个问题️,我们使用 JSON.stringify。请看下面的实际操作

示例 4:将数组存储在本地存储中

现在我们使用 JSON.stringify 将数组存储在本地存储中

localStorage.setItem('WebSite', 'uiuing.com');
let ProgrammingLanguage = ['Java', 'Python', 'JavaScript', 'GO+']

// 这里讲原先的ProgrammingLanguage 修改为了 JSON.stringify(ProgrammingLanguage)
localStorage.setItem('favoriteProgrammingLanguage',JSON.stringify(ProgrammingLanguage));

示例 5:从本地存储中获取数组

从本地存储中获取数组。

上面的结果可能看起来像一个数组,但我们从本地存储而不是数组获取字符串。

让我证明一下。

因此,为了从本地存储中获取数组,我们使用 JSON.parse ,见下文。

示例 6:从本地存储中获取数组?

现在我们 JSON.parse 使用从本地存储中获取数组

console.log(JSON.parse(localStorage.getItem('favoriteProgrammingLanguage')));

因此,我们使用:

JSON.stringify:将数组设置为本地存储中的值。JSON.parse:从本地存储中获取数组。

示例 7:清除本地存储

清理前

localStorage.clear()

运行后

因此,我们可以使用 localStorage.clear() 来清除本地存储

仅从本地存储中删除“name1”键值对。

示例 8:仅从本地存储中删除 Name1 键值对

localStorage.setItem('Name1', 'uiu');
localStorage.setItem('WebSite', 'uiuing.com');

let ProgrammingLanguage = ['Java', 'Python', 'JavaScript', 'GO+']
localStorage.setItem('favoriteProgrammingLanguage',JSON.stringify(ProgrammingLanguage));

运行这条命令试试

localStorage.removeItem('Name1');

正如您在上面看到的,为了删除我们使用的特定键值对 localStorage.removeItem

会话存储

这就是关于本地存储的全部内容。

我们在 会话存储 中运行类似的操作,唯一的区别是我们 使用 sessionStorage 代替 localStorage

// 示例1
sessionStorage.setItem('Name1', 'uiu');

// 示例2
sessionStorage.getItem('Name1');

// 示例4
let ProgrammingLanguage = ['Java', 'Python', 'JavaScript', 'GO+']
sessionStorage.setItem('favoriteProgrammingLanguage',JSON.stringify(ProgrammingLanguage));

// 示例6
console.log(JSON.parse(sessionStorage.getItem('favoriteProgrammingLanguage')));

// 示例7
sessionStorage.clear()

// 示例8
sessionStorage.removeItem('Name1');

让我们运行一下

sessionStorage.setItem('Name1', 'uiu');

接下来我们关闭该网页,然后重新打开

此时会话存储的数据已经消失了,而之前示例运行的数据在本地存储中还存在

总结

让我重申一下:本地存储和会话存储之间唯一的主要区别是,一旦我们关闭浏览器,我们就会丢失会话存储中保存的任何内容。但是,本地存储并非如此。

最后,让我们看看 MDN 怎么说:

  • 窗口界面的 localStorage 只读属性允许您访问 Document 来源的 Storage 对象;存储的数据跨浏览器会话保存。
  • 只读 sessionStorage 属性访问当前源的会话存储对象。sessionStorage 类似于 localStorage;不同之处在于,虽然 localStorage 中的数据不会过期,但 sessionStorage 中的数据会在页面会话结束时被清除。

到此这篇关于JavaScript中本地存储(LocalStorage)和会话存储(SessionStorage)的使用的文章就介绍到这了,更多相关JavaScript本地存储和会话存储内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 分享8个JavaScript库可更好地处理本地存储

    我为当前项目测试了一些本地存储库.想知道他们有什么很棒的功能吗?继续阅读. Local Storage Bridge https://github.com/krasimir/lsbridge 如果你必须在同一个浏览器中从一个标签页发送消息到另一个标签页,你不必用艰难的方式.Local storage bridge在这里让任务变得更简单. 基本使用: // 发送 lsbridge.send('app.message.error', { error: 'Out of memory' }); // 监

  • 基于js 本地存储(详解)

    在客户端运行的JS是不能操作用户电脑磁盘中的文件的(保护客户端运行的安全) 1.JS中的本地存储: 使用JS向浏览器的某一个位置中存储一些内容,浏览器即使关闭了,存储的信息也不会销毁,当在重新打开浏览器的时候我们依然可以获取到上一次存储的信息 本地存储的方案: 传统: cookie:把信息存储到客户端的浏览器中(但是项目服务器端也是可以获取COOKIE的) session:把信息存储到服务器上的(服务器存储) HTML5:webStorage localStorage:永久存储在客户端的本地 s

  • JS实现本地存储信息的方法(基于localStorage与userData)

    本文实例讲述了JS实现本地存储信息的方法.分享给大家供大家参考,具体如下: WEB应用的快速发展,是的本地存储一些数据也成为一种重要的需求,实现的方案也有很多,最普通的就是cookie了,大家也经常都用,但是cookie的缺点是显而易见的,其他的方案比如:IE6以上的userData,Firefox下面的globalStorage,以及Flash的本地存储,除了Flash之外,其他的几个都有一些兼容性的问题. sessionStorage与localStorage Web Storage实际上由

  • 纯js实现无限空间大小的本地存储

    好久没有写博客了,想到2年前答应要放出源代码的也没放出来,最近终于有空先把纯js实现无限空间大小的本地存储的功能开源了, 项目地址https://github.com/xueduany/localstore, demo见http://xueduany.github.io/localstore/, 下面给大家简单说说大概原理,具体细节和异常处理后面有机会在单独说 先说下突破本地localStorage的原理,官方原话是这么说的http://www.w3.org/TR/2013/PR-webstor

  • JavaScript中本地存储(LocalStorage)和会话存储(SessionStorage)的使用

    目录 前提知识 范例 示例1:将键值对提供给本地存储 示例2: 本地存储中设置键值对 示例3: 获取空值 示例 4:将数组存储在本地存储中 示例 5:从本地存储中获取数组 示例 6:从本地存储中获取数组? 示例 7:清除本地存储 示例 8:仅从本地存储中删除 Name1 键值对 会话存储 总结 我不会告诉你任何定义和概念,上车,读完这篇博客,你就会对本地存储(Local Storage) 和 会话存储(Session Storage)有一个清晰的认识. 前提知识 请按照我以下的步骤来: 1.在任

  • 详解JavaScript中Hash Map映射结构的实现

    Hash Map通常在JavaScript中作为一个简单的来存储键值对的地方.然而,Object并不是一个真正的哈希映射,如果使用不当可能会带来潜在的问题.而且JavaScript可能不提供本地哈希映射(至少不是跨浏览器兼容的),有一个更好的声明对象属性的方法. Hash Map的简单实现: var hashMap = { Set : function(key,value){this[key] = value}, Get : function(key){return this[key]}, Co

  • JavaScript中值类型和引用类型的区别

    JavaScript的数据类型分为两类:原始类型和对象类型.其中,原始类型包括:数字.字符串和布尔值.此外,JavaScript中还有两个特殊的原始值:null和undefined,它们既不是数字也不是字符串,更不是布尔值.它们通常分别代表了各自特殊类型的唯一成员.JavaScript中除了数字.字符串.布尔值.null和undefined之外的就是对象了. JavaScript中值类型和引用类型的区别 JavaScript中的值类型的值是不可变的: 任何方法都无法改变值类型的值.数字.布尔值.

  • JavaScript本地存储与会话存储的实现介绍

    目录 一.简单介绍 二.localStorage本地存储 三.sessionStorage会话存储 总结 一.简单介绍 本地存储和会话存储的目的,是将所输入的文件存入到浏览器中,在需要的时候,直接调用,但是本地存储和会话存储有着一定的区别,本地存储,在不主动删除的情况下,会一直保留在浏览器中,会话存储是,当前保存的内容,页面刷新还会保留在浏览器中,但是关闭页面在打开时,会发现没有数据了.这是他们两的用处和区别. 二.localStorage本地存储 如下代码 我们先给button一个监听事件,让

  • JavaScript中localStorage对象存储方式实例分析

    本文实例讲述了JavaScript中localStorage对象存储方式.分享给大家供大家参考,具体如下: [Local storage limitations]文章中提及JavaScript里的local storge的限制,例子中在localStorage里存储了一个bool型的数据,但是却没有像我们期待的一样进行存储. 当我们存储布尔型,数值型,字符串型时,localStorage对象会将我们存储的数据默认转为字符串字面量. localStorage[0] = false;// "fals

  • JavaScript中html画布的使用与页面存储技术详解

    目录 一.JavaScript使用html中的画布 二.页面存储技术 一.JavaScript使用html中的画布 1.画布:页面中用于绘制图形的特殊区域 2.绘制图形的过程 (1)创建画布:使用html5中画布标签 <canvas id="id" width="宽度" height="高度"> </canvas> (2)JavaScript中获取画布 document.getElementById('id') (3)准备

  • 本地存储localStorage用法详解

    一.什么是localStorage? 在HTML5中,新加入了一个localStorage特性,这个特性主要是用来作为本地存储来使用的,解决了cookie存储空间不足的问题(cookie中每条cookie的存储空间为4k),localStorage中一般浏览器支持的是5M大小,这个在不同的浏览器中localStorage会有所不同. 二.localStorage的优势与局限 localStorage的优势 1.localStorage拓展了cookie的4K限制 2.localStorage会可

  • JS+HTML5本地存储Localstorage实现注册登录及验证功能示例

    本文实例讲述了JS+HTML5本地存储Localstorage实现注册登录及验证功能.分享给大家供大家参考,具体如下: 源码引用的js.jquery都是在线的,代码拷到本地就能运行 登录: <html ng-app="ionicApp"> <head> <meta charset="utf-8"> <meta name="viewport" content="initial-scale=1, m

  • 本地存储localStorage设置过期时间示例详解

    目录 思考 实现思路 代码实现 代码测试 思考 在我们使用cookie的时候是可以设置有效期的,但是localStorage本身是没有该机制的,只能人为的手动删除,否则会一直存放在浏览器当中,可不可以跟cookie一样设置一个有效期.如果一直存放在浏览器又感觉有点浪费,那我们可以把localStorage进行二次封装实现该方案. 实现思路 在存储的时候设置一个过期时间,并且存储的数据进行格式化方便统一校验,在读取的时候获取当前时间进行判断是否过期,如果过期进行删除即可. 代码实现 目录结构 en

  • JavaScript本地储存:localStorage、sessionStorage、cookie的使用

    javaScript有三种数据存储方式,分别是: sessionStorage localStorage cookier 1. sessionStorage sessionStorage仅在当前会话下有效,关闭页面或浏览器后被清除: setItem(key,value) 设置数据 getItem(key) 获取数据 removeItem(key) 移除数据 clear() 清除所有值 <script> // 添加数据 window.sessionStorage.setItem("na

随机推荐