如果你是 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
相关推荐
浏览器本地缓存localStorage与sessionStorage的区别? 答:生命周期不同:前者一直存在浏览器,除非用户手动清除,后者生命周期结束于浏览器或者tab页 的关闭 canvas的常用api有哪些? getContext:返回一个指定...
用于HTML5存储的类似于StorageDB MongoDB的API(localStorage和sessionStorage)注意:npm软件包名称为“ storagedb2”。具有类似MongoDB的API轻巧,只有3KB(最小化并压缩)没有dep StorageDB用于HTML5的类似于...
本地化 一个简单的JS类,用于包装localStorage和sessionStorage功能。 支持到期日期,因此您可以缓存数据并安全地检索它 :fire: 安装 npm i localit 例子 import { Localit } from "localit" ; // You can pass `...
boomerangCache是基于localStorage的客户端缓存库。 如何安装? Npm: npm install boomerang-cache 凉亭: bower install boomerang-cache 文件 API参考 创造 查看 放 得到 得到所有 长度 去掉 清除 ...
Web存储缓存语言见WebStorageCache对HTML5 localStorage和sessionStorage进行了扩展,添加了超时时间,序列化方法。可以直接存储json对象,同时可以非常简单的进行超时时间的设置。优化: WebStorageCache自动清除...
模拟本地存储模拟localStorage进行无头单元测试受StackOverflow答案的启发,并包装到npm包中。动机用于模拟localStorage以在终端(即,没有浏览器)中运行高速缓存实现的无头测试。安装 npm install mock-local-...
本地缓存增强现实世界场景的 LocalStorage API HTML5 / SessionStorage 提供了在浏览器的键值存储中存储永久或临时任意数据的基础。 然而,当您希望用它实现一些“真实”的东西时,您很快就会意识到 API/实现中有...
由于我们知道访问这些存储机制,因此,实现小幅度性能提升以及引入一些缓存逻辑的一种方法是,大多数时间访问本机JS数据结构,仅返回到sessionStorage或如果我们的对象中的数据被认为是过时的,则为localStorage。...
离线获取 offlineFetch是标准的包装,可通过将sessionStorage , localStorage或IndexedDB,WebSQL与使用时缓存请求来增加脱机支持。 当navigator.onLine === true或请求超时时,将检测到脱机模式。用法将复制到您的...
边缘13; Chrome29,50+; Firefox 46+; Safari 7+; iOS 9.2以上版本;... 支持$cacheFactory , sessionStorage和localStorage开箱即localStorage缓存。 轻松于其他第三方缓存服务。 与AngularJS 1.2–1.6兼容
缓存(localstorage/sessionstorage/indexdb):glowing_star::glowing_star: 通信/实时数据(websocket):glowing_star: 客户端(electron):glowing_star: 功能模块 登录注册(账号密码):glowing_star::...
# VJ是什么,能干什么? VJ本身提供的不是一个瑰丽的UI框架,甚至特别绚丽的单一界面功能,甚至更方便地在不插入代码的情况下应用各种炫彩控件和新逻辑的可能: 它首先使用的是CVVM设计思想与总线架构模式,程序...
但本地存储这个家族可远不止它。以前扯过 sessionStorage,现在还有个神奇的 CacheStorage。它用来存储 Response 对象的。也就是说用来对 HTTP ,响应做缓存的。虽然 localStorage 也能做,但是它可能更专业。 ...
Features 多次调用,响应一次,可...oneHandle(fn, '本地缓存的key名', 'sessionStorage'): sessionStorage时效性 oneHandle(fn, '本地缓存的key名'): localStorage时效性 Introduction 下载方式 npm i one-handle yar
(2)针对跨域数据交互问题,指出并分析了跨域缓存交互问题出现的原因,通过在HTML5存储技术的基础上,重写LocalStorage,用移动端本地的Sqlite进行数据维护,实现跨域数据交互。 (3)针对页面自适应问题,本文结合...
声明周期:localStorage : 永久,除非用户个人行为删除sessionStorage : 窗口或者标签页被关闭,则存储数据删除作用域 :localSt
但本地存储这个家族可远不止它。以前扯过 sessionStorage,现在还有个神奇的 CacheStorage。它用来存储 Response 对象的。也就是说用来对 HTTP ,响应做缓存的。虽然 localStorage 也能做,但是它可能更专业。 ...
Ajax-jquery-ajax-cache.zip,jquery插件,用于用“localstorage”或“sessionstorage”缓存ajax。,ajax代表异步javascript和xml。它是多种web技术的集合,包括html、css、json、xml和javascript。它用于创建动态网页...
memory/sessionStorage/localStorage 级数据缓存支持 Promise thenable 风格的 API 调用 基于接口约定的通用回调处理支持(通用错误处理、loading 状态、通用参数、埋点上报<接口超时、接口错误、接口异常、数据...
默认情况下使用localStorage或sessionStorage ,但如果不可用,则使用ngCookies 。 让您保存JS对象 如果保存Number ,则会得到Number ,而不是字符串 使用缓存系统,以便如果您已经拥有一个值,它将不会再次从存储...