javascript本地缓存之localStorage,sessionStorage等


如果你是 javascript高手,请来这里吧,扣扣群 170798851,我们一起进步。

 

/**
 * @author wsf 本地缓存对象
 */
(function(win){
	var doc = window.document,//文档对象
	lstore = "localStorage",//本地存储对象
	sstore = "sessionStorage",//会话级别的存储对象
	gstore = "globalStorage",//firefox专用(估计将来会被废弃);
	storage = function (){
		this.store = {};//存储对象
		this.inited = false;//是否初始化过
		this.storeName = location.hostname||"defaultStore";
	};
	//原型对象
	storage.prototype = {
		_init:function (){
			try {
				this.store = win[sstore]||win[lstore]||win[gstore][this.storeName]||(function (){
					var _storeEle= doc.createElement('div'),_body=doc.body;//创建隐含div
					_storeEle.style.display = 'none';
					_storeEle.addBehavior('#default#userData');//添加储存数据行为
					_body.appendChild(_storeEle);//添加到body(所以必须等待body加载完成后)
					return _storeEle;
				})();//优先考虑sessionStore是因为项目中最好不要把用户数据一直留在磁盘上(当然localStore也可以手动清除)
				this.inited = true;
			} catch (e) {
				this.inited = false;
				throw new Error("初始化失败!");
			}
		},
		//set数据
		_set:function(key, val) {
			if(this.inited){
				var _st = this.store;
				if(!!_st.setItem)
					_st.setItem(key,val);
				else{
					_st.load(this.storeName);
					_st.setAttribute(key,val);
					_st.save(this.storeName);
				}
			}else{
				this._init();
				arguments.callee.call(this,key,val);
			}
		},
		//get数据
		_get:function(key) {
			if(this.inited){
				var _st = this.store;
				if(!!_st.getItem)
					return _st.getItem(key);
				else{
					_st.load(this.storeName);
					return _st.getAttribute(key);
				}
			}else{
				this._init();
				return arguments.callee.call(this,key);
			}
		},
		//移除数据
		_remove:function(key) {
			if(this.inited){
				var _st = this.store;
				if(!!_st.removeItem)
					_st.removeItem(key);
				else{
					_st.load(this.storeName);
					_st.removeAttribute(key);
					_st.save(this.storeName);
				}
			}else{
				this._init();
				argumens.callee.call(this,key);
			}
				
		},
		//清空数据
		_clear:function() {
			var _st = this.store;
			if(!!_st.clear)
				_st.clear();
			else{
				//TODO
			}
		},
		//是否已经存在数据
		existData:function (key){
			return !!this._get(key);
		},
	    //添加数据
		addData:function (key,val,expire){
			this._set(key,val,expire);
		},
		//获得数据
		getData:function (key){
			return this._get(key);
		},
		//清除数据
		removeData:function (key){
			this._remove(key);
		},
		//清除所有数据
		clearAll:function (){
			this._clear();
		}
	}
	
	win.store = new storage();
	alert(store.getData("test"));
	store.addData("test",JSON.stringify({"a":"b"}));
})(window);

   

    git项目地址:https://github.com/Jonavin/WebStorage/blob/master/src/WebStorage.js

 

Vision-Language Navigation - Windows环境下编译安装Matterport3D Simulator仿真器(三) 目录1 编译 Matterport3D Simulator 源码1.1 源码下载1.2 编译 1 编译 Matterport3D Simulator 源码   在 Windows 下编译 Matterport3D Simulator 稍微有些不方便,需要对 CMakeLists.txt 进行一些修改,如果有更好的方法欢迎大家评论。 1.1 源码下载   还是直接在 Github 上搜索 Matterport3D Simulator 的 repo,下载源码。如果用 zip 方式,那么直接在下即可。如果使用 阅读详情

相关推荐

从零到一:Abaqus与Matlab联合仿真的自动化流程构建指南

本文详细介绍了如何构建Abaqus与Matlab联合仿真的自动化流程,涵盖基础架构设计、关键接口技术实现、结果提取与处理技术以及高级参数化优化流程。通过Python脚本作为桥梁,实现数据传递和任务控制,帮助工程师提升仿真效率。特别强调了版本兼容性、异常处理和性能监控等实用技巧。

weixin_29090089的博客 612

js-前端存储之sessionStorage

sessionStorage是 Web Storage API 提供的一种客户端存储机制,用于在浏览器中保存会话级别(session-level)的数据。与localStorage不同,sessionStorage中存储的数据在用户关闭标签页或浏览器窗口时会被清除。

岂不闻 2787

ESP32S3电池电量监测实战:从分压电路到IDF组件配置(附GitHub源码)

本文详细介绍了ESP32S3电池电量监测的完整实战方案。从硬件分压电路的电阻选型、滤波设计,到软件层面利用ESP-IDF的ADC校准机制提升精度,并重点讲解了如何集成bat_monitor开源组件快速实现电压采集、电量计算、充电检测与事件通知。文章提供了从原理到调试的完整指南和GitHub源码,帮助开发者构建稳定可靠的物联网设备电源管理系统。

ee345的博客 530

原生JavaScript实现本地存储(localStorage)和会话存储(sessionStorage)

本地存储和会话存储的目的,是将所输入的文件存入到浏览器中,在需要的时候,直接调用,但是本地存储和会话存储有着一定的区别,本地存储,在不主动删除的情况下,会一直保留在浏览器中,会话存储是,当前保存的内容,页面刷新还会保留在浏览器中,但是关闭页面在打开时,会发现没有数据了。这是他们两的用处和区别。......

yzq0820的博客 2892

基于DBSCAN聚类算法的超像素实时分割

Real-Time Superpixel Segmentation by DBSCAN Clustering Algorithm 摘要 在本文中,我们提出了一种基于密度的带噪声应用空间聚类(DBSCAN)算法的50帧/秒实时图像超像素分割方法。为了降低超像素算法的计算量,我们采用了一种快速的两步框架。在第一个聚类阶段,使用具有颜色相似性和几何约束的DBSCAN算法对像素进行快速聚类,然后在第二个合并阶段,通过颜色和空间特征定义的距离度量,将小簇按其邻域合并为超像素。为了在这两个步骤中获得更好的超像素,定义了

yttt的博客 3492

计算机组成原理 微程序控制器实验

微程序控制器实验 实验环境 计算机组成原理实验环境 实验目的 掌握微程序控制器的组成原理和工作过程。 理解微指令和微程序的概念,理解微指令与指令的区别与联系。 掌握指令操作码与控制存储器中微程序的对应方法。熟悉根据指令操作码从控制存储器中读出微程序的过程。 实验要求 做好实验预习,读懂实验电路图,熟悉实验元器件的功能特性和使用方法。 按照实验内容与步骤的要求,独立思考,认真仔细地完成实验。 写出实验报告。 实验电路        

Long_UP的博客 7万+

JS 本地缓存sessionStorage

sessionStorage的使用 // 保存 sessionStorage.setItem('key','value'); // 获取 var data = sessionStorage.getItem('key'); // 删除保存的数据 sessionStorage.removeItem('key'); // 从sessionStorage删除所有保存的数据 sessionStorag...

nnaay_的博客 533

maxwell 平面变压器仿真(一)

在学习开关电源设计的时候,我们难免要设计变压器,采用有限元仿真软件MAXWELL 可以帮助我们确定变压器的励磁电感,漏感等参数。对于我们的理论分析大有裨益。但是苦于这破软件的教程真的是相当的零散,我相信大家用起来也总是苦于没有系统的教程指导,撰写本文的目的有两个,一个是记录自己使用的一些问题,一个是给大家提供一个可以参考的文档。

qq_45405656的博客 8245

JS 缓存 sessionStorage localStorage的使用方法

使用 Window sessionStorage 和 localStorage 属性 sessionStorage 用于临时保存同一窗口(或标签页)的数据,在关闭窗口或标签页之后将会删除这些数据 localStorage 缓存在浏览器的数据,只有清空浏览器缓存才会删除这些数据 sessionStorage 和localStorage 的使用语法一样,这里以sessionStorage 的语法为示例 语法 window.sessionStorage 保存数据语法: sessionStorag

weixin_42062766的博客 725

RS485接口EMC设计:三级防护与滤波隔离方案

RS485总线在工业现场面临共模噪声、差模脉冲和地电位差三大电磁兼容挑战。通过三级防护架构(气体放电管、PTC热敏电阻、半导体放电管)实现能量梯次泄放,结合共模扼流圈和滤波电容形成完整防护链。该方案经实测可将6kV浪涌下的通信稳定性提升90%,特别适用于工业自动化、电力监控等严苛环境。设计要点包括防护器件选型计算、PCB分区布局及地处理策略,其中GDT通流能力与TSS箝位电压的配合是关键。

weixin_33419305的博客 522

YOLO26 网络结构逐模块解析:Backbone/Neck/Head

本文解析了YOLO26目标检测网络的架构设计,重点介绍其在Backbone、Neck和Head三个核心组件的创新优化。Backbone采用改进的CSP模块与轻量级注意力机制,提升特征提取效率;Neck使用改进的BiFPN结构实现高效多尺度特征融合;Head采用完全解耦设计简化回归流程。文章详细分析了各模块的技术演进、实现细节和设计思想,通过流程图和代码示例展示了YOLO26的整体架构和关键组件实现。该研究对模型优化、定制开发和硬件部署具有重要指导意义。

一键难忘的博客 1246

js传递数据之sessionStorage

转载请申明:   这段时间在做公司项目的时候发现了一个自己想了好久没想明白的问题,就是我从这个页面a跳转到页面b的时候带着所点击div的所对应的属性值一起传过去,刚开始想通过url带参传输过去,显然是可以的,不过在后面出现了种种问题,所以无奈只能想过其他更好地方式来实现这个。之后查询了很多资料,终于发现了sessionStorage这个神奇的东西,本地储存器。一用发现简直了,太好用了,话

Brooke的博客 1万+

【音视频基础】一篇搞懂视频的各种封装格式

在现代多媒体处理中,视频封装格式扮演着至关重要的角色。不同的封装格式决定了视频文件的存储方式、兼容性以及功能特性。无论是观看高清视频、编辑电影剪辑,还是在互联网上流式传输内容,理解各种视频封装格式的基础知识都是必不可少的。在这篇文章中,我们将详细介绍常见的视频封装格式,探讨为什么需要这些格式,以及它们各自的功能和区别,帮助你在选择和使用视频格式时做出更明智的决定。WEBM理解各种视频封装格式的功能和区别对于选择合适的格式至关重要。

m0_62599305的博客 2478

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

定义和使用 localStorage 和 sessionStorage 属性允许在浏览器中存储 key/value 对的数据。 localStorage 用于长久保存整个网站的数据,保存的数据没有过期时间,直到手动去删除。 sessionStorage 数据保存在当前会话中,该数据对象临时保存同一窗口(或标签页)的数据,在关闭窗口或标签页之后将会删除这些数据。 保存数据语法 localStorage.setItem(“key”, “value”); sessionStorage .setItem(“key”

m0_49016709的博客 2722

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

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

一、定义和使用localStorage 和 sessionStorage 属性允许在浏览器中存储 key/value 对的数据。localStorage 用于长久保存整个网站的数据,保存的数据没有过期时间,直到手动去删除。sessionStorage 数据保存在当前会话中,该数据对象临时保存同一窗口(或标签页)的数据,在关闭窗口或标签页之后将会删除这些数据。保存数据语法读取数据语法:删除数据语法:下面写个方法把两个封装一起方便开发使用的示例。

tianxianghuiwei的博客 2015

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

js本地缓存-localStorage、sessionStorage

js本地缓存-localStorage、sessionStorage

weixin_46001736的博客 522

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Javascript本地存储的方式有哪些?区别及应用场景?

javaScript。Cookie,类型为「小型文本文件」,指某些网站为了辨别用户身份而储存在用户本地终端上的数据。是为了解决HTTP无状态导致的问题

蓝斑.json的博客 1269

JavaScript本地存储_cookie_sessionStorage_localStorage

cookie、localStorage、sessionStorage 三种缓存的区别

m0_49031210的博客 1973

JavaScript本地存储的方式有哪些,已经应用场景

但是cookie在每次发起请求中都会被发送,如果不使用HTTPS,并对它加密,那么保存的信息很容被窃取,导致安全风险。sessionStorage的用法和localStorage的用法一直,唯一不同的是生命周期,一旦页面关闭,sessionStorage将会删除数据。indexedDB是一种低级的API,用于客户端存储大量结构化的数据,indexedDB使用索引来实现对数据的高性能搜索。cookie,小型文本文件,指的是网站为了辨别用户分身而储存在用户本地终端上的数据。是为了解决http无状态导致的问题。

读心悦 579

JS语法笔记

常用的js语法1.map(提取数组对象中的某个属性值,并返回一个新数组)2.some(判断数组对象中是否存在某个属性值)3.find/filter(根据数组对象中的某个属性值,取它整个对象)4.forEach/push(循环向数组对象中添加属性)5.for...in用法6.for…of用法7.async...await8.三点运算符 1.map(提取数组对象中的某个属性值,并返回一个新数组) //实例一:单纯的提取数组对象中的某个属性值,返回一个数组 var detailList = [ {

qq1158830872的博客 1240

javascript基础二十四:JavaScript中本地存储的方式有哪些?区别及应用场景?

JavaScript中本地存储的方式有哪些?区别及应用场景?

Allen-Ye博客 734

本地缓存的区别与联系

无状态导致的问题 作为一段一般不超过 4KB 的小型文本数据,它由一个名称(Name)、一个值(Value)和其它几个用于控制。在每次请求中都会被发送,如果不使用 HTTPS 并对其加密,其保存的信息很容易被窃取,导致安全风险。对于存储较少量的数据很有用,但对于存储更大量的结构化数据来说,这种方法不太有用。使用方法基本一致,唯一不同的是生命周期,一旦页面(会话)关闭,属性都是相同的才可以,其中有一个不同得时候都会创建出一个新的。的使用会比较繁琐,大家可以通过使用。的删除,最常用的方法就是给。

qq_17189095的博客 125

JavaScript本地存储(解决跨域问题,无法从后端设置session域和cookie)

作为一段一般不超过 4KB 的小型文本数据,它由一个名称(Name)、一个值(Value)和其它几个用于控制。,类型为「小型文本文件」,指某些网站为了辨别用户身份而储存在用户本地终端上的数据。对于存储较少量的数据很有用,但对于存储更大量的结构化数据来说,这种方法不太有用。属性都是相同的才可以,其中有一个不同得时候都会创建出一个新的。并对其加密,其保存的信息很容易被窃取,导致安全风险。使用方法基本一致,唯一不同的是生命周期,一旦。的使用会比较繁琐,大家可以通过使用。的删除,最常用的方法就是给。

qq_46509116的博客 444

JavaScript中本地存储的方式有哪些?区别及应用场景?

JavaScript中本地存储的方式

huihui_999的博客 257

Javascript本地存储的⽅式有哪些?区别及应用场景

javaScript 本地存储(也称本地缓存)的⽅法我们主要讲述以下四种: cookie sessionStorage localStorage indexedDB cookie Cookie ,类型为「小型文本文件」,指某些网站为了辨别用户身份而储存在用户本地终端上的数据。 是为了解决 HTTP 无状态导致的问题 作为一段一般不超过 4KB 的小型文本数据,它由一个名称(Name)、一个值(Value)和其它几个用于 控制 co.

gyuano的博客 965

24.JavaScript中本地存储的方式有哪些?区别及应用场景?

一、方式 javaScript本地缓存的方法我们主要讲述以下四种: cookie sessionStorage localStorage indexedDB cookie Cookie,类型为「小型文本文件」,指某些网站为了辨别用户身份而储存在用户本地终端上的数据。是为了解决HTTP无状态导致的问题 作为一段一般不超过 4KB 的小型文本数据,它由一个名称(Name)、一个值(Value)和其它几个用于控制cookie有效期、安全性、使用范围的可选属性组...

kleinBlue.的博客 191
上一篇: javascript本地缓存之userData(ie专用)
下一篇: javascript小工具之——cookie操作
sfSam
博客等级 码龄16年 13粉丝 115原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值