JavaScript 存储对象 sessionStorage (会话存储) 和 localStorage(本地存储)

2023-05-16

JavaScript 存储对象

Web 存储 API 提供了 sessionStorage (会话存储) 和 localStorage(本地存储)两个存储对象来对网页的数据进行添加、删除、修改、查询操作。

  • localStorage 用于长久保存整个网站的数据,保存的数据没有过期时间,直到手动去除。

  • sessionStorage 用于临时保存同一窗口(或标签页)的数据,在关闭窗口或标签页之后将会删除这些数据。

    控制台查看 F12打开控制台(以火狐和Google 为例)

 

localStorage属性

它是本地存储对象,相当于手机App里面的缓存,也相当于电脑上面的浏览器缓存,我们可以调用这个属性在浏览器里面存储一定的数据

  • 登录的时候,用于保存账号,例于下次登陆

  • 登录以后用于保存当前登陆的相关信息

特点:

  • localStorage在浏览器关闭以后还会存在,如果不是手动清除,它会一直存在

  • localStorage它可以跨页面,但是不能跨域(相同的域共享一个localStorage,不同的域不能共享localStorage)

  • localStorage里面,只能存放字符串,如果你存放的是其它的类型,也会被转成字符串

    if (!window.localStorage) {
                alert("浏览器不支持localstorage");
                return false;
            } else {
                var storage = window.localStorage;//window.localStorage  查看本地储存 
       // setItem 存数据的方式  setItem("key值","value");
            localStorage.setItem("name", "存储");
            localStorage.hobby = "唱歌";
            localStorage["hobby"] = "跳舞";
            localStorage.setItem("id", Date.now());
    
            // window.localStorage  查看本地储存
            console.log(window.localStorage);
            localStorage
    
            //表现形式为 键值对   key:value;
            id: "1567731041669"
    
            // getItem 取值 
            localStorage.getItem("id"); 
            localStorage.id;
            localStorage["name"];
    
            // .key(1) 取键值   取值从0开始计数
            localStorage.key(1);
    
            }

    seccionStorage属性

  • sessionStorage在浏览器关闭以后会自己清除掉

  • sessionStorage它不能跨普通的页面,也不能跨域

  • sessionStorage它可以跨window.open()打开的页面的(window.open()方法打开的页面共享一个sessionStorage)

  • sessionStorage里面,只能存放字符串,如果你存放的是其它的类型,也会被转成字符串

不管是 localStorage,还是 sessionStorage,可使用的API都相同,常用的有如下几个(以localStorage为例):

  • 保存数据:localStorage.setItem(key,value);
  • 读取数据:localStorage.getItem(key);
  • 删除单个数据:localStorage.removeItem(key);
  • 删除所有数据:localStorage.clear();
  • 得到某个索引的key:localStorage.key(index);

提示: 键/值对通常以字符串存储,你可以按自己的需要转换该格式。

cookie

Cookie 是在您的计算机上存储在小的文本文件中的数据。

当 web 服务器向浏览器发送网页后,连接被关闭,服务器会忘记用户的一切。

Cookie 是为了解决“如何记住用户信息”而发明的:

  • 当用户访问网页时,他的名字可以存储在 cookie 中。
  • 下次用户访问该页面时,cookie 会“记住”他的名字。

在之前所学习的localStorage,sessionStorage它们也可以存储一定的内容,但是要注意,它们这两个都是window下面的属性window.localStorage,window.sessionStorage

而我们的cookie而不是window下面的属性,cookie它是document下面的属性,cookie有一套专门的取值 与赋值方法,与之前的localStorage,sessionStorage不同

        cookie与storage的区别:

            1.cookie是document下面的属性 storage在window下面

            2.localstorage需要手动清除,sessionstorage关闭浏览器自动清除,cookie可以设置时间自动清除

            3.localstorage可以跨页面,sessionstorage只支持跨父子页面,cookie可以跨页面但是不可以跨路径

            4.cookie存放数据的大小4kb左右(每次在进行http请求都会携带cookie),然而storage数据储存大小一般在5M或更大

            从安全性上来说 session的安全性是大于cookie

通过 JavaScript 创建 cookie

JavaScript 可以用 document.cookie 属性创建、读取、删除 cookie。

通过 JavaScript,可以这样创建 cookie:

        document.cookie="name属性=value值";

        document.cookie="userName=cookie";

您还可以添加有效日期(UTC 时间)。默认情况下,在浏览器关闭时会删除 cookie:


document.cookie = "username=John Doe; expires=Sun, 31 Dec 2017 12:00:00 UTC";  

通过 path 参数,您可以告诉浏览器 cookie 属于什么路径。默认情况下,cookie 属于当前页。


document.cookie = "username=Bill Gates; expires=Sun, 31 Dec 2017 12:00:00 UTC; path=/";  

通过 JavaScript 读取 cookie

通过 JavaScript,可以这样读取 cookie:


var x = document.cookie;  

document.cookie 会在一条字符串中返回所有 cookie,比如:cookie1=value; cookie2=value; cookie3=value;

通过 JavaScript 改变 cookie

通过使用 JavaScript,你可以像你创建 cookie 一样改变它:


document.cookie = "username=Steve Jobs; expires=Sun, 31 Dec 2017 12:00:00 UTC; path=/";  

旧 cookie 被覆盖。

通过 JavaScript 删除 cookie

删除 cookie 非常简单。

删除 cookie 时不必指定 cookie 值:

直接把 expires 参数设置为过去的日期即可:


document.cookie = "username=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;";  

您应该定义 cookie 路径以确保删除正确的 cookie。

如果你不指定路径,一些浏览器不会让你删除 cookie。

Cookie 字符串

document.cookie 属性看起来像一个正常的文本字符串。但它不是。

即使你向 document.cookie 写一份完整的 cookie 字符串,当再次读取时,你只能看到它的名称-值对。

如果设置了新 cookie,则旧的 cookie 不会被覆盖。新的 Cookie 会被添加到 document.cookie,所以如果你读取 document.cookie,你得到的东西会像这样:


cookie1 = value; cookie2 = value;  

显示所有 cookie 创建 cookie 1 创建 cookie 2 删除 cookie 1 删除 cookie 2

如果你想找到一个指定 cookie 的值,你必须编写 JavaScript 函数来搜索 cookie 字符串中的 cookie 值。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JavaScript 存储对象 sessionStorage (会话存储) 和 localStorage(本地存储) 的相关文章

  • ubuntu安装配置squid进行代理

    前段时间 xff0c 在ubuntu下安装了squid xff0c 进行代理测试 xff0c 现将方法记录如下 xff1a 一 实验环境 两台虚拟机 xff0c 一台为ubuntu xff0c 一台为windows xp 其中 xff0c
  • dos中的变量

    1 0 9 用于获取命令行的参数 2 i用在命令行中的for语句 3 i用在脚本文件中的for语句 4 var 立即扩展变量var的值 5 xff01 var xff01 延迟扩展变量的值 xff08 提前设置 setlocal enabl
  • IDEA实用插件之Spring Assistant——可视化构建SpringBoot项目(社区版专用)

    应用场景 社区版的idea中无法创建spring boot应用 xff0c 旗舰版不存在这方面的问题 社区版要实现创建SpringBoot项目 xff0c 一个途径是通过Spring的官网 xff0c 网页版的spring initiali
  • vue-element-plus-admin整合后端实战——实现系统登录、缓存用户数据、实现动态路由

    目标 整合vue element plus admin前端框架 xff0c 作为开发平台的前端 准备工作 前端选用vue element plus admin xff0c 地址 https gitee com kailong11012013
  • linux下 有线和无线同时工作

    又要使用公司内网收邮件 xff0c 又要使用wifi上外网 为了这个问题 xff0c 百度了下 xff0c 都是抄来抄去的文章 xff0c 好烦 解决方法 xff0c 就是使用route命令 xff0c 修改静态路由表 方法 xff1a 1
  • MySQL监控告警及可视化:Zabbix+Percona PMP实现(Part II)

    MySQL监控告警及可视化 xff1a Zabbix 43 Percona PMP实现 xff08 Part II xff09 PMP插件安装PMP监控脚本配置Web界面导入PMP模板 服务器清单如下 xff1a 服务器IP配置OS版本服务
  • 引用远程资源库中不存在的jar包,相关问题及解决方案

    问题背景 项目中需要用到远程资源库中不存在的jar包 xff0c 将jar包放在项目目录下 xff0c 并用 lt systemPath gt 的方式引用 xff0c windows系统本地调试的时候没问题 xff0c 部署到Linux能成
  • 彻底解决 error: Unable to find vcvarsall.bat

    1 windows上做Python开发 xff0c 搭环境还真不比Linux容易 error Unable to find vcvarsall bat这个错误眼熟吧 xff1f 凡是安装和操作系统底层密切相关的Python扩展 xff0c
  • ubuntu下解决微信不能发送图片的问题

    安装sudo apt install libjpeg62 i386 xff0c 可以解决ubuntu下不能发送微信截图的问题
  • dpkg安装deb缺少依赖包的解决方法--Ubuntu 16.04 LTS 安装网易云音乐

    一 去网易云音乐官网下载对应的安装包 我下载的是netease cloud music 1 0 0 2 amd64 ubuntu16 04 deb 二 开始安装 sudo dpkg span class hljs attribute i s
  • 个人号微信机器人API接口

    发送APP类消息 和发送小程序是同一个接口 xff0c 此接口可发送xml中包含appmsg的消息 xff0c 例如 xff1a 短视频 xff0c 直播 xff0c 音乐 xff0c 第三方APP等 请求URL xff1a http 域名
  • Fiddler抓包(下载安装及使用)

    一 下载安装 1 下载 官网链接 xff1a https www telerik com Fiddler Classic xff08 经典版 xff09 xff0c 这个版本是免费的 xff0c 不过只能在Windows上使用 Fiddle
  • URL&HTTP协议详解

    URL xff1a 统一资源定位符 这就意味着我们可以通过URL的方式去访问的资源 xff08 接口 xff09 URI xff1a 统一资源标识符 是一种抽象的概念 xff0c 本身没有具体去实现 一 URL URL是实现接口访问的第一步
  • CentOS7学习笔记(安装配置到常用命令)

    一 下载安装 访问linux org xff0c 选择centos xff0c 找到centos对应版本的镜像网站下载 新建虚拟机 安装 xff1a 语言默认英文 xff0c 最好不要改动 xff0c 不然有可能会有乱码问题 时区选择sha
  • Microsoft 365自定义安装,卸载Access、Publisher、Skype

    买电脑送的Office 2019只有Word Excel PowerPoint三件套 xff0c 一般情况都是够用的 xff0c 可以前往Microsoft 帐户 服务和订阅中下载一键安装 但是拥有Microsoft 365 xff08 原
  • Vimium如何使用

    Vimium是什么 vimium是一款支持全键盘操作浏览器的扩展 可以尽可能的解放鼠标 有一定的学习成本 xff0c 对本就拥有vim使用经验的人来说上手更容易 支持Chrome Edge Firefox 使用流畅后可以大大的提升浏览器的使
  • Linux 文件系统

    Linux 文件系统以及常见命令 Linux 文件系统block 与 inode文件类型权限目录树挂载 管道啥是管道管道的分类管道的实质 Linux 文件系统 在 Linux 中一切皆文件 xff0c 不仅仅是平时所使用的 txt pdf
  • 利用栈判断一个字符串是否为回文串

    include lt stdio h gt include lt string h gt 利用栈判断一个字符串是否为回文串 int main char a 101 s 101 int i len mid next top gets a 读入
  • Mysql 8.0 MGR部署限制和环境要求

    在mysql 8 0版本中 xff0c mgr功能进行了很大的改善和增强 xff0c 如果要部署组复制的服务器 xff0c 实例必须满足以下条件 xff1a 基础设置 xff1a 1 InnoDB存储引擎 disabled storage
  • ubuntu下安装vmware

    1 下载vmware xff0c https www vmware com cn products workstation pro workstation pro evaluation html 2 下载的vmware放到家目录下 3 ch

随机推荐

  • 使用devenv/MSBuild在命令行编译单个project

    一 使用devenv来build单个project devenv是VisualStudio的可执行程序 xff0c 一般安装在 C Program Files x86 Microsoft Visual Studio 10 0 Common7
  • 解决ROS常遇到的Couldn’t find executable named报错解决

    解决办法 xff1a 将执行文件打开权限允许作为程序执行文件
  • ubuntu下QtCreator启动无响应问题解决

    QtCreator正常使用 xff0c 系统重启后一打开就卡死 xff0c 无响应状态 xff0c 重装也没用 xff0c 查了半天才解决 解决方法 xff1a 删除系统配置目录下的QtProject文件夹 具体实施 xff1a 1 fin
  • PTA 数据结构 6-2 顺序表基本操作

    6 2 顺序表基本操作 xff08 10 分 xff09 本题要求实现顺序表元素的增 删 查找以及顺序表输出共4个基本操作函数 L是一个顺序表 xff0c 函数Status ListInsert Sq SqList amp L int po
  • Typora 的 markdown 语法

    Typora 的 markdown 语法 1 标题 使用简单的 ctrl 43 数字键 就可以快速完成各种级别的标题 也可以使用 表示一级标题 xff0c 表示二级标题 xff0c 以此类推 xff0c 有6个标题 2 下划线 ctrl 4
  • css弹性布局和相关属性

    弹性布局 弹性布局主要是解决移动端的问题 xff0c 但是并不代表它不能适用于PC端 xff0c 它最重要的技术就是一个叫弹性盒子 xff08 flexbox xff09 的东西 弹性盒子最主要的几个属性如下 display flex 这个
  • CSS动画

    CSS动画 CSS3的动画属性 下面的表格列出了 64 keyframes 规则和所有动画属性 xff1a 属性描述CSS 64 keyframes规定动画 3animation所有动画属性的简写属性 xff0c 除了 animation
  • JavaScript简介

    JavaScript 它是一种脚本语言 xff0c 提供页面与用户的交互途径 xff0c 主要包含三个方面的东西 ECMAScript ES 它主要是用来定义JavaScript的语法规范 xff0c 现在主流的版本是5 1 后期的主要部分
  • JavaScript 输出 语法

    JavaScript 显示方案 JavaScript 不提供任何内建的打印或显示函数 JavaScript 能够以不同方式 显示 数据 xff1a 使用 window alert 写入警告框使用 document write 写入 HTML
  • JavaScript 条件语句

    JavaScript 条件语句 条件语句 通常在写代码时 xff0c 您总是需要为不同的决定来执行不同的动作 您可以在代码中使用条件语句来完成该任务 在 JavaScript 中 xff0c 我们可使用以下条件语句 xff1a if 语句
  • JavaScript 循环

    JavaScript 支持不同类型的循环 xff1a for 循环代码块一定的次数for in 循环遍历对象的属性while 当指定的条件为 true 时循环指定的代码块do while 同样当指定的条件为 true 时循环指定的代码块 F
  • android系统logcat日志重定向到kernel,可以通过串口来输出

    修改system core rootdir init rc chmod 0660 sys power wake lock chmod 0660 sys power wake unlock 43 chmod 0660 proc kmsg St
  • JavaScript 数组知识图

  • javascript DOM 知识图

    HTML DOM 文档对象模型 当网页被加载时 xff0c 浏览器会创建页面的文档对象模型 xff08 Document Object Model xff09 主要目的就是把网页里面的元素当成对象一样支配 HTML DOM 定义了用于 HT
  • JavaScript 能够改变页面中的所有 HTML 元素

    JavaScript 能够改变页面中的所有 HTML 元素 改变 HTML 输出流 JavaScript 能够创建动态的 HTML 内容 xff1a 在 JavaScript 中 xff0c document write 可用于直接向 HT
  • audio 音频标签的使用 及实例

    audio 音频标签的使用 属性值描述autoplayautoplay如果出现该属性 xff0c 则音频在就绪后马上播放 controlscontrols如果出现该属性 xff0c 则向用户显示音频控件 xff08 比如播放 暂停按钮 xf
  • jQuery简介及简单语法

    什么是 jQuery xff1f jQuery是一个JavaScript函数库 jQuery是一个轻量级的 34 写的少 xff0c 做的多 34 的JavaScript库 jQuery库包含以下功能 xff1a HTML 元素选取HTML
  • jQuery里面的选择器

    jQuery里面的选择器 jQuery里面的选择器多种多样 xff0c 它支持css1 css3的选择器 xff0c 老版本的jQuery还支持Xpath的选择器 xff0c 在原来的CSS选择器上面又扩展了一些新的选择器 jQuery支持
  • jQuery事件

    什么是事件 xff1f 页面对不同访问者的响应叫做事件 事件处理程序指的是当 HTML 中发生某些事件时所调用的方法 jQuery 是为事件处理特别设计的 实例 xff1a 在元素上移动鼠标 选取单选按钮点击元素 在事件中经常使用术语 34
  • JavaScript 存储对象 sessionStorage (会话存储) 和 localStorage(本地存储)

    JavaScript 存储对象 Web 存储 API 提供了 sessionStorage xff08 会话存储 xff09 和 localStorage xff08 本地存储 xff09 两个存储对象来对网页的数据进行添加 删除 修改 查