js 本地缓存localStorage和sessionStorage 还有cookie 用法和区别

一、定义和使用
localStorage 和 sessionStorage 属性允许在浏览器中存储 key/value 对的数据。

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

sessionStorage 数据保存在当前会话中,该数据对象临时保存同一窗口(或标签页)的数据,在关闭窗口或标签页之后将会删除这些数据。

保存数据语法
localStorage.setItem(“key”, “value”);
sessionStorage .setItem(“key”, “value”);

读取数据语法:
var lastname = localStorage.getItem(“key”);
var lastname = sessionStorage .getItem(“key”);

删除数据语法:
localStorage.removeItem(“key”);
sessionStorage .removeItem(“key”);

下面写个方法把两个封装一起方便开发使用的示例

var SaveData=function(){};SaveData.prototype={/**保存数据到本地* 参数 k* 参数 v* 参数 flag  为true时表示是sessionStorage保存,其他则为localStorage保存*/storageSaveData:function(k,v,flag){if(flag==true){sessionStorage.setItem(k,v);return true;}localStorage.setItem(k,v);return true;},/*** 获取本地数据* 参数  k* 参数  flag*/storageGetData:function(k,flag){if(flag==true){return sessionStorage.getItem(k);}return localStorage.getItem(k);},/*** 清除本地数据中的值* 参数  flag* 参数  k* returns {boolean}*/storageClearData:function(flag,k){if(flag==true){if(checkTool.validVar(k)){sessionStorage.removeItem(k);}else{sessionStorage.clear();}return true;}if(checkTool.validVar(k)){localStorage.removeItem(k);}else{localStorage.clear();}return true;},}var SaveData=new SaveData();
二’ cookie

cookie属于较老且最常见用的最多的技术了,cookie的优点很多,但是缺点也很多:

注意:本地存储一般是明文存储,对于重要的信息不要直接存储在本地,如果非要存储的话,记得要对存储的信息进行加密。

加密方法

a.可逆转加密(一般都是自己来设置自规则)
b.不可逆转加密:(一般都是基于MD5来进行加密,可能会把MD5加密后的数据二次加密)

实际项目中本地缓存都能来存储什么?

cookie:记住用户名密码以便下次自动登录等等:当用户登录成功后,存储用户的部分信息,便可以在项目的任何页面知道当前的用户是谁了。

storage:存储一些不容易过期的数据(如从api接口中接收的用于渲染页面的数据),在存储时一般加入一个存储时间(time:Date.now()),以便在下次

刷新页面的时候判断存储的事件有没有超过预定的时间;也可以用来存储一些页面的源代码,比如css样式或者html等等(有必要的时候需要来结合前台的数据);

希望对大家有所帮助,你们的支持是我最大的动力;

  1. cookie兼容所有的浏览器,但其存储的数据是有大小限制的,一般同源是4kb;
  2. cookie本地存储的数据会被发送到服务器(所以建议在服务器环境下使用cookie);
  3. 跨域访问问题;浪费带宽等等;
  4. 存在浏览器不支持的情况:chrome不支持,其他市面上的主流浏览器基本都支持
    所以:在使用cookie前,先确认浏览器支不支持cookie,检查当前浏览器是否支持或者禁用了cookie,代码如下:
  5. var dt = new Date();
    dt.setSeconds(dt.getSeconds() + 60);
    document.cookie = "cookietest=1; expires=" + dt.toGMTString();
    var cookiesEnabled = document.cookie.indexOf("cookietest=") != -1;
    if(!cookiesEnabled){//没有启用cookiealert("没有启用cookie ");
    }else{//已经启用cookiealert("已经启用cookie ");
    }
    

    在js的脚本中,cookie实际上是document的一个字符属性,当你读取cookie的值时,得到的是一个字符串,里面的是当前web存放的所有的cookie的name,value,除此之外,
    每一个cookie除了有namevalue,还有其他四个属性:expires过期时间,path路径,domain域以及secure安全等。
    cookie中存储的数据,如果没有设置有效期的话,浏览器关闭的时候就会被清空(并非关系选项卡)

    cookie的区分是以域名的方式。

    cookie的用法:以键值对的方式来存储数据(key:value形式),一个域名下能存储的cookie个数是不同的,具体的看浏览器的支持性了

    当一个域名下有多个cookie时,输出document.cookie时输出的是当前域名下的所有cookie,cookie之间以分号加空格的形式隔开

    存储格式:document.cookie=“name=[;expires=][;domain=][;secrue]”

    普通的存储数据如下:

      document.cookie = "id=18";document.cookie = "name=liangye";alert(document.cookie); //id=18; name=liangye 由于没有设置有效期expires,浏览器关闭后会自动来清理cookie(并非关闭标签)
    

    三.cookie和storage的区别

  6. cookie兼容所有的浏览器(本地cookie谷歌不支持),storage不支持IE6~8;
  7. 二者对存储的内容均有大小限制,前者同源情况写一般不能存储4kb的内容,后者同源一般能存储只能存储5MB的数据
  8. cookie有过期时间,localStorage是永久存储(如果你不手动去删除的话)
  9. 一些浏览器处于安全的角度可能会禁用cookie,但无法禁用localStorage

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

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

相关文章

Mini-React

jsx jsx 是React中对于JavaScript的语法扩展,允许在JavaScript中去写类似于HTML的代码。使得开发者能够以一种更直观和声明式的方式去编写用户界面 vdom vdom是React为了提高性能而去引入的一个虚拟的dom表示。 它是一个轻量级的 JavaScript 对象,用于…

推荐算法策略需求-rank model优化

1.pred_oobe (base) [rusxx]$ pwd /home/disk2/data/xx/icode/baidu/oxygen/rus-pipeline/pipeline-migrate/UserBaseActiveStatPipeline/his_session (base) [rusxx]$ sh test.sh 2. user_skill_history_dict_expt2包含userid [workxx]$ vim /home/work/xx/du-rus/du_rus_o…

Python 之 Flask 框架学习

毕业那会使用过这个轻量级的框架,最近再来回看一下,依赖相关的就不多说了,直接从例子开始。下面示例中的 html 模板,千万记得要放到 templates 目录下。 快速启动 hello world from flask import Flask, jsonify, url_forapp F…

Redis集群的方案

文章目录 主从同步哨兵模式 在Redis中提供的集群方案总共有三种:主从同步、哨兵模式、Redis分片集群 主从同步 主从解决的是高并发问题。 单个Redis节点的并发能力有限,要进一步提高Redis的并发能力,可以搭建主从集群,实现读写分…

【edge浏览器无法登录某些网站,以及迅雷插件无法生效的解决办法】

edge浏览器无法登录某些网站,以及迅雷插件无法生效的解决办法 edge浏览器无法登录某些网站,但chrome浏览器可以登录浏览器插件无法使用,比如迅雷如果重装插件重装浏览器重装迅雷后仍然出现问题 edge浏览器无法登录某些网站,但chro…

基于FPGA的SPI_FLASH程序设计

SPI_FLASH简介 spi_flash是一种通用存储器,也称为SPI NOR Flash或SPI Flash。它使用SPI(Serial Peripheral Interface)接口进行通信,可以通过串行方式读写数据。spi_flash的特点是工作电压低,体积小,读写速…

设计模式之旅:工厂模式全方位解析

简介 设计模式中与工厂模式相关的主要有三种,它们分别是: 简单工厂模式(Simple Factory):这不是GoF(四人帮,设计模式的开创者)定义的标准模式,但被广泛认为是工厂模式的…

【单片机家电产品学习记录--红外线】

单片机家电产品学习记录–红外线 红外手势驱动电路,(手势控制的LED灯) 原理 通过红外线对管,IC搭建的电路,实现灯模式转换。 手势控制灯模式转换,详细说明 转载 1《三色调光LED台灯电路》&#xff0c…

矩阵空间秩1矩阵小世界图

文章目录 1. 矩阵空间2. 微分方程3. 秩为1的矩阵4. 图 1. 矩阵空间 我们以3X3的矩阵空间 M 为例来说明相关情况。目前矩阵空间M中只关心两类计算,矩阵加法和矩阵数乘。 对称矩阵-子空间-有6个3X3的对称矩阵,所以为6维矩阵空间上三角矩阵-子空间-有6个3…

【Turtle】海龟先生

什么是编程 计算机只懂0和1这样的语言,可是我们不懂,当我们希望 计算要能帮我们做事情的时候,该怎么办呢? 我们需要一种更简便的方法告诉计算机要做什么,所以人类发明了编程语言 利用计算机编程语言,我们…

硬件了解 笔记

motherboard的高低端区别在哪里? 核心:从单核变成双核,多核(几核就是几个打工人) 多线程:6核本来对应6个线程,但是多线程就是说6核对应12个线程 频率 主频:平时打工的速度 睿频&…

iNeuOS工业互联网操作系统,“低代码”表单开发应用过程(一)

iNeuOS工业互联网操作系统,“低代码”表单开发应用过程(一) 目 录 1. 概述... 2 2. “低代码”表单开发应用过程... 2 1. 概述 iNeuOS工业互联网操作系统“表单设计”功能经过升级后,能够适用于更多应用场景&…

Altair® FluxMotor® 电机拓扑探索和多物理场优化

Altair FluxMotor 电机拓扑探索和多物理场优化 FluxMotor 致力于解决电机的整体设计问题。该软件工具可帮助工程师加快电机设计速度,在考虑多物理场约束条件的同时快速探究各种参数配置,并在几分钟内选出完善的可能。 FluxMotor 具有简单直观的使用界面…

美摄科技AI智能图像矫正解决方案

图像已经成为了企业传播信息、展示产品的重要媒介,在日常拍摄过程中,由于摄影技巧的限制和拍摄环境的复杂多变,许多企业面临着图像内容倾斜、构图效果不佳等挑战,这无疑给企业的形象展示和信息传递带来了不小的困扰。 美摄科技深…

Windows Edge浏览器兼容性问题诊断与修复策略详解

随着Microsoft Edge浏览器的持续迭代与更新,其性能与兼容性已得到了显著提升。然而,在面对互联网上纷繁复杂的网页内容时,仍有可能遇到兼容性问题。本文旨在探讨Edge浏览器在处理网页兼容性问题时的常见场景、原因分析及相应的解决方案&#…

索引下推(Index Condition Pushdown,简称 ICP)

Mysql可以分为Server层和存储引擎层 所以,最终进行I/O的是存储引擎对文件系统进行I/O操作 索引下推(Index Condition Pushdown,简称 ICP) 对应InnoDB,索引下推适用于非聚簇索引(二级索引)。 …

数据结构进阶篇 之【选择排序】详细讲解(选择排序,堆排序)

民以食为天,我以乐为先 嘴上来的嘘寒问暖,不如直接打笔巨款 一、选择排序 1.直接选择排序 SelectSort 1.1 基本思想 1.2 实现原理 1.3 代码实现 1.4 直接选择排序的特性总结 2.堆排序 HeapSort 跳转链接:数据结构 之 堆的应用 二、完…

26.活锁、饥饿锁

两个线程,相互改变了对方结束条件,导致两个线程不能结束。执行时间也都是一样,导致两个线程永远不会结束。 Slf4j public class LiveLockDemo {static volatile int count 10;public static void main(String[] args) {new Thread(() ->…

单片机中的RAM vs ROM

其实,单片机就是个小计算机。大计算机少不了的数据存储系统,单片机一样有,而且往往和CPU集成在一起,显得更加小巧灵活。 直到90年代初,国内容易得到的单片机是8031:不带存储器的芯片,要想工作&a…

FPGA高端项目:解码索尼IMX327 MIPI相机+图像缩放+视频拼接+HDMI输出,提供开发板+工程源码+技术支持

目录 1、前言免责声明 2、相关方案推荐本博主所有FPGA工程项目-->汇总目录我这里已有的 MIPI 编解码方案 3、本 MIPI CSI-RX IP 介绍4、个人 FPGA高端图像处理开发板简介5、详细设计方案设计原理框图IMX327 及其配置MIPI CSI RX图像 ISP 处理自研HLS图像缩放详解Video Mixer…