WebStorage之浏览器的本地存储(结合案例)

news2024/11/27 22:29:00

目录

  • 前言
  • 一,WebStorage
  • 二,localStorage
    • 2.1 存储
    • 2.2 读取
    • 2.3 删除
    • 2.4 清除全部
    • 2.5 代码
  • 三,sessionStorage
    • 3.1 用法
    • 3.2 区别
    • 3.3 代码
  • 四,结合案例
  • 后记

前言

浏览器的本地存储可以缓存一些信息在浏览器中,方便取用。在学习中我们可以直观看到信息在浏览器中被存储,并想办法读取到;在项目中的应用更加广泛,如登录后把用户信息放在浏览器中,方便取用。

一,WebStorage

webStorage是本地存储的总称,它包括了localStorage和sessionStorage。本节内容向大家介绍的就是这两种本地存储的方法,以及它们之间的区别。

在学习本节之前我们先来看一下信息存储在浏览器中,我们可以在哪里看到:利用f12键打开控制台,在‘应用’中,剋查看到本地存储空间,这里会放置我们存储的一些本地信息,如下图所示:
在这里插入图片描述

二,localStorage

该方法的调用者是window,先介绍它的使用格式,其中,xxx是它下面的api:

window.localStorage.xxx

这里注意,window对象调用时,window是可以省略的。但是本节为了代码的完整性,在学习篇幅中并未省略window

2.1 存储

我们可以将很多类型的信息存放在本地浏览器中,如字符串,对象,等等。(存进去的是字符串,存储内容一般5M左右,不同浏览器不同)
是以键值对的形式存储的:

window.localStorage.setItem('key','value')

如:

 window.localStorage.setItem('msg', 'hello')

使用上述方式可以看到信息被浏览器成功存储在本地:
在这里插入图片描述
也可以存储一个对象进去

2.2 读取

通过此方法我们可以读取到以及存储的数据,格式如下:

window.localStorage.getItem('key')

如:

window.localStorage.getItem('msg2')

console.log即可打印出来。

这里有一个需要注意的点,如下代码:

let p = {name: '张三', age: '18'}
window.localStorage.setItem('people', p)

这里是存储了一个对象进去,效果如下:
在这里插入图片描述
没办法正常看到这个对象。这个时候可以利用JSON.stringify()方法,将对象变成JSON字符串的形式存储进去:

window.localStorage.setItem('people', JSON.stringify(p))

即可正常读取:

window.localStorage.getItem('people')

在这里插入图片描述
在这里插入图片描述

2.3 删除

通过此方法我们可以删除本地存储的数据,格式如下:

window.localStorage.removeItem('key')

如:

window.localStorage.removeItem('msg2')

删除后数据则无法读取,读取出来的是null。
在这里插入图片描述

2.4 清除全部

通过此方法可以清空本都存储的所有数据:

window.localStorage.clear()

2.5 代码

这是与localStorage相关的所有代码,大家可以拿来学习使用:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <h2>localStorage</h2>
    <button class="btn1">点我保存一个数据</button>
    <button class="btn2">点我读取一个数据</button>
    <button class="btn3">点我删除一个数据</button>
    <button class="btn4">清空所有数据</button>

    <script>
        let p = {name: '张三', age: '18'}
        var btn1 = document.querySelector('.btn1')
        var btn2 = document.querySelector('.btn2')
        var btn3 = document.querySelector('.btn3')
        var btn4 = document.querySelector('.btn4')
        btn1.addEventListener('click', function() {
             window.localStorage.setItem('msg', 'hello')
             window.localStorage.setItem('msg2', '666')
             window.localStorage.setItem('people', JSON.stringify(p))
        })
        btn2.addEventListener('click', function() {
            console.log(window.localStorage.getItem('msg2'))
            console.log(window.localStorage.getItem('people'))
        })
        btn3.addEventListener('click', function() {
            window.localStorage.removeItem('msg2')
        })
        btn4.addEventListener('click', function() {
            window.localStorage.clear()
        })
    </script>
</body>
</html>

三,sessionStorage

3.1 用法

sessionStorage内部的四个api和localStorage的用法完全一样。

3.2 区别

两者都是本地存储,区别在于:
localStorage的存储内容,需要手动清除才会消失,关闭浏览器后再次点开话可以获取到;
sessionStorage的存储内容会随着浏览器关闭而关闭,再次点开无法看到。

3.3 代码

这是与sessionStorage相关的所有代码,大家可以拿来学习使用:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <h2>sessionStorage</h2>
    <button class="btn1">点我保存一个数据</button>
    <button class="btn2">点我读取一个数据</button>
    <button class="btn3">点我删除一个数据</button>
    <button class="btn4">清空所有数据</button>

    <script>
        let p = {name: '张三', age: '18'}
        var btn1 = document.querySelector('.btn1')
        var btn2 = document.querySelector('.btn2')
        var btn3 = document.querySelector('.btn3')
        var btn4 = document.querySelector('.btn4')
        btn1.addEventListener('click', function() {
             window.sessionStorage.setItem('msg', 'hello')
             window.sessionStorage.setItem('msg2', '666')
             window.sessionStorage.setItem('people', JSON.stringify(p))
        })
        btn2.addEventListener('click', function() {
            console.log(sessionStorage.getItem('msg2'))
        })
        btn3.addEventListener('click', function() {
            window.sessionStorage.removeItem('msg2')
        })
        btn4.addEventListener('click', function() {
            window.sessionStorage.clear()
        })
    </script>
</body>
</html>

四,结合案例

这是笔者之前做过的一个项目中的部分代码,使用的就是本地存储。(仅供学习使用)
这是一段登录的代码,利用axios,利用本地存储把用户的信息存储在本地:

        axios({
            baseURL: baseUrl,
            url: "url",
            method: "post",
            data: {
                "username": user_name,
                "password": user_password,
            },
        }).then((res) => {
            if (res.data.code == 200) {
                if (window.localStorage) {
                    // 在本地存储一个键值对
                    localStorage.setItem("uid", res.data.data.uid);
                    localStorage.setItem("indexPage", 1);
                    localStorage.setItem("role", res.data.data.roleName);
                    localStorage.setItem("name", res.data.data.realName);
                    localStorage.setItem("dept", res.data.data.dept);
                } else {
                    Cookie.write("uid", res.data.data.uid);
                    Cookie.write("indexPage", 1);
                    Cookie.write("role", res.data.data.roleName);
                    Cookie.write("name", res.data.data.realName);
                    Cookie.write("dept", res.data.data.dept);
                }
                window.location.href = './msg/index.html';
            } else {
                controlbgc();
                moshi.style.display = 'block';
                tip.innerHTML = res.data.msg;
            }
        });

后面可以随时取用,比较方便。

//获取基本信息
var uid = window.localStorage ? localStorage.getItem('uid') : Cookie.read('uid');//获取uid
var tipsf = window.localStorage ? localStorage.getItem('role') : Cookie.read('role');

上述代码只是为了阐述本地存储的作用,方便大家加深理解。仅供学习使用。

后记

本篇内容讲述了浏览器本地存储的相关知识,如果有问题欢迎评论区留言。希望本篇内容可以帮助到大家。欢迎关注!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/166771.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Docker(黑马spring cloud笔记)

Docker 目录Docker一、介绍和安装1. 安装2. 启动3. 镜像加速二、Docker基本操作1. 镜像操作2. 容器操作3. 数据卷操作三、Dockerfile1. 镜像结构2. Dockerfile四、Docker-Compose1. 安装2. 基本命令五、Docker私服搭建六、练习练习1&#xff1a;save和load练习2&#xff1a;doc…

【MySQL】深入学习B+索引的使用

文章目录1. 前言2. 索引的代价2.1 空间上的代价2.2 时间上的代价3. B树索引的使用3.1 提取正确的扫描区间3.1.1 所有搜索条件都可以生成合适的扫描区间的情况3.1.2 有的搜索搜索条件不能生成合适的扫描区间3.1.3 从复杂的搜索条件中找出扫描区间3.1.4 使用联合索引执行查询时对…

5. 统计学基础2:协方差、相关系数、协方差矩阵

文章目录1. 协方差2. 相关系数【就是使 |协方差|<1】3. 协方差矩阵1. 协方差 标准差和方差一般是用来描述一维数据的&#xff0c; 具体介绍见&#xff1a;5. 统计学基础1&#xff1a;平均值…四分位数、方差、标准差&#xff08;均方差&#xff09;、标准误&#xff08;标准…

ModelMapper 一文读懂

目录 1、ModelMapper简介 1.1 引入ModelMapper 的依赖 1.2 进行Mapping映射 1.3 ModelMapper 工作原理 2、ModelMapper 基础操作 2.1 ModelMapper 基本映射 2.2 ModelMapper 集合转换 2.3 ModelMapper 指定默认值 2.4 ModelMapper 属性值转换 2.5 ModelMapper 属…

node.js创建服务器及知识点

node.js创建服务器及知识点用http协议创建web服务器http协议知识点用express创建web服务器express中路由知识点fs文件系统模块文件流querystring查询字符串模块URL模块中间件挂载路由器node.js和mysql项目实战知识点完整代码注意点用http协议创建web服务器 //引入http const h…

【强训】Day07

努力经营当下&#xff0c;直至未来明朗&#xff01; 文章目录一、选择二、编程1. Fibonacci数列2. 合法括号序列判断 ☆答案1. 选择2. 编程普通小孩也要热爱生活&#xff01; 一、选择 Math.round(11.5) 等于&#xff08;&#xff09; A 11 B 11.5 C 12 D 12.5 以下对继承的描…

Spring Boot(五十四):SpringBoot事件监听机制

1 Java监听机制 SpringBoot 的监听机制&#xff0c;其实是对Java提供的事件监听机制的封装。 Java中的事件监听机制定义了以下几个角色&#xff1a; 事件&#xff1a;Event&#xff0c;继承 java.util.EventObject 类的对象事件源&#xff1a;Source &#xff0c;任意对象Ob…

Unet网络解析

1 Unet网络概述 论文名称&#xff1a;U-Net: Convolutional Networks for Biomedical Image Segmentation 发表会议及时间 &#xff1a;MICCA ( 国际医学图像计算和 计算机辅 助干预会 议 ) 2 0 1 5 Unet提出的初衷是为了解决医学图像分割的问题。 Unet网络非常的简单&…

leetcode 2246. Longest Path With Different Adjacent Characters(不同相邻字母的最长路径)

给一棵以节点0为根的树&#xff08;不一定是二叉树&#xff09;&#xff0c;共有n个节点&#xff0c;0&#xff5e;n-1&#xff0c; 同样的&#xff0c;有长度为n的数组parent, parent[i]表示第 i 个节点的parent, 0的parent是-1. 长度为n的字符串&#xff0c;s(i)表示第i个节点…

JSPmvc

一、JSP 概述 JSP&#xff08;全称&#xff1a;Java Server Pages&#xff09;&#xff1a;Java 服务端页面。是一种动态的网页技术&#xff0c;其中既可以定义HTML、JS、CSS等静态内 容&#xff0c;还可以定义 Java代码的动态内容&#xff0c;也就是 JSP HTML Java 。如下就…

【金融】新成立基金建仓时点、行业分布与市场行情关系探究

需要进一步交流&#xff0c;获取数据和代码的同学欢迎私信奥~基于新成立基金建仓带入市场的巨量资金会推动市场行情这一逻辑&#xff0c;开展了一系列研究。首先提出了通过基金净值识别建仓行为&#xff08;累计绝对值涨跌幅法&#xff09;和通过基金β值识别建仓行为&#xff…

Vue知识系列-VS Code的安装+Vue环境的搭建+Vue指令

一、VS Code下载地址 Visual Studio Code - Code Editing. Redefined 二、VS Code初始化设置 1.安装插件 在安装好的VSCode软件的扩展菜单中查找安装如下4个插件 2、创建项目 vscode本身没有新建项目的选项&#xff0c;所以要先创建一个空的文件夹&#xff0c;如project_xx…

自主异常检测算法(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

AppScan 扫描web应用程序

系列文章 AppScan介绍和安装 第二节-AppScan 扫描web应用程序 1.环境布置 我们准备了如下一个靶场用来做实验 2.扫描步骤 1.启动AppScan 2.选择 【扫描web应用程序】 3.输入起始URL&#xff0c;点击【下一步】 http://127.0.0.1:83/4.选择【不使用代理】,点击【下一…

ctfshow php特性[125-135]

&#x1f60b;大家好&#xff0c;我是YAy_17&#xff0c;是一枚爱好网安的小白&#xff0c;自学ing。 本人水平有限&#xff0c;欢迎各位大佬指点&#xff0c;一起学习&#x1f497;&#xff0c;一起进步⭐。⭐此后如竟没有炬火&#xff0c;我便是唯一的光。⭐web 125<?php…

word怎么转换成pdf?其实很简单,看这里即可!

转眼间又到了校招的季节&#xff0c;想必许多小伙伴都在忙着编辑自己的简历吧。不过&#xff0c;咱们编辑的时候常常用到的都是word文件&#xff0c;但是当我们要将文件投递出去的时候就需要用到pdf了。其实不仅仅是投递简历&#xff0c;许多地方在要求我们发送正式文件的时候都…

vue+node+mysql全栈项目完整记录

文章目录vuenodemysql全栈项目完整记录写在前面项目最终界面展示项目框架搭建后端创建后端项目编写入口文件数据库及数据库使用前端创建前端项目使用elementUI必要包安装设置跨域访问&#xff0c;全局挂载axios删除无用的文件和代码设置统一的页面样式主页面页面设计路由设计登…

【C语言】柔性的数组是什么?C/C++程序的内存开辟又是?

本文主要讲解柔性数组的相关知识点&#xff0c;并穿插一下C/C程序的内存开辟&#xff0c;涉及到动态内存管理函数&#xff0c;如有不了解的&#xff0c;请参考这一篇文章【C语言】小王带您轻松实现动态内存管理&#xff08;简单易懂&#xff09;_小王学代码的博客-CSDN博客 目录…

【C++】类和对象【下篇】--初始化列表,static成员,友元,内部类,匿名对象

文章目录一、再谈构造函数1.构造函数体赋值2.初始化列表1.概念2.特性二、隐式类型转换1.概念2.构造函数的类型转换3.explict关键字4.类型转换的意义三、Static成员1.概念2.static成员变量3.static成员函数四、友元1.友元函数2.友元类五、内部类六、匿名对象七、拷贝对象时的一些…

深入使用noexcept

深入使用noexcept简介好处坏处适用场景不适用场景实验结果总结参考资料简介 noexcept是C11引入的&#xff0c;表明函数是否会抛出异常。正确使用它可以优化性能&#xff0c;错误使用则会带来麻烦。 noexcept使用语法有两种&#xff1a; noexcpetnoexcept(expression) 第二种…