(function(window,localStorage,undefined){ var LS = { set : function(key, value){ //在iPhone/iPad上有时设置setItem()时会出现诡异的QUOTA_EXCEEDED_ERR错误 //这时一般在setItem之前,先removeItem()就ok了 if( this.get(key) !== null ) this.remove(key); localStorage.setItem(key, value); }, //查询不存在的key时,有的浏览器返回undefined,这里统一返回null get : function(key){ var v = localStorage.getItem(key); return v === undefined ? null : v; }, remove : function(key){ localStorage.removeItem(key); }, clear : function(){ localStorage.clear(); }, each : function(fn){ var n = localStorage.length, i = 0, fn = fn || function(){}, key; for(; i<n; i++){ key = localStorage.key(i); if( fn.call(this, key, this.get(key)) === false ) break; //如果内容被删除,则总长度和索引都同步减少 if( localStorage.length < n ){ n --; i --; } } } }, j = window.jQuery; //扩展到相应的对象上 window.LS = window.LS || LS; //扩展到其他主要对象上 if(j) j.LS = j.LS || LS; })(window,window.localStorage);
var LocalData = { hname:location.hostname?location.hostname:'localStatus', isLocalStorage:window.localStorage?true:false, dataDom:null, initDom:function(){ //初始化userData if(!this.dataDom){ try{ this.dataDom = document.createElement('input');//这里使用hidden的input元素 this.dataDom.type = 'hidden'; this.dataDom.style.display = "none"; this.dataDom.addBehavior('#default#userData');//这是userData的语法 document.body.appendChild(this.dataDom); var exDate = new Date(); exDate = exDate.getDate()+30; this.dataDom.expires = exDate.toUTCString();//设定过期时间 }catch(ex){ return false; } } return true; }, set:function(key,value){ if(this.isLocalStorage){ if( this.get(key) !== null ) this.remove(key); window.localStorage.setItem(key,value); }else{ if(this.initDom()){ this.dataDom.load(this.hname); this.dataDom.setAttribute(key,value); this.dataDom.save(this.hname) } } }, get:function(key){ if(this.isLocalStorage){ var v = window.localStorage.getItem(key); return v === undefined ? null : v; }else{ if(this.initDom()){ this.dataDom.load(this.hname); return this.dataDom.getAttribute(key); } } }, remove:function(key){ if(this.isLocalStorage){ window.localStorage.removeItem(key); }else{ if(this.initDom()){ this.dataDom.load(this.hname); this.dataDom.removeAttribute(key); this.dataDom.save(this.hname) } } } }
相关推荐
以下是一个简单的Vue localStorage封装示例: 1. 创建一个名为`localStorageService.js`的文件,作为我们的封装工具: ```javascript import Vue from 'vue' const localStorageService = { setItem(key, value) ...
这个类中,`setItem`和`getItem`方法都使用了`JSON.stringify`和`JSON.parse`进行数据的序列化和反序列化,以适应`localStorage`的字符串存储需求。同时,通过类型注解,我们确保了在设置和获取值时的类型安全。 ...
"storejs本地存储localstorage的封装提供简单的API没有依赖" 这个标题告诉我们,storejs是一个专门针对浏览器本地存储机制——localStorage的轻量级库。它通过封装localStorage,为开发者提供了更易用的API接口,...
1. **封装API**: 创建一个自定义的存储库,封装`localStorage`和`sessionStorage`的常用操作,如`set`, `get`, `remove`, `clear`等,这样可以使代码更加模块化,易于维护和测试。 2. **数据序列化与反序列化**: ...
30-localStorage封装
30-localStorage封装
30-localStorage封装
在本篇文档中,我们将深入探讨如何在Vue项目中实现一个`localStorage`的封装工具类,以便更好地管理和利用浏览器的本地存储功能。此外,我们还将了解如何实现缓存数据的自动过期机制,确保数据的有效性和安全性。 #...
在将H5应用打包成Android...解决这个问题需要理解Android Webview的工作原理,以及如何在Android端正确配置和使用`localStorage`。通过与Android开发者的紧密合作,我们可以确保H5应用在打包后的功能完整性和用户体验。
这个"基于html5 localStorage本地存储的一个简易改造封装使其变通用的js组件.zip"提供了一个经过优化的JavaScript组件,旨在使localStorage的使用更加方便和通用。 localStorage主要提供了两个方法:`setItem`和`...
使用简单但功能强大的API封装IndexedDB、WebSQL或localStorage"很可能就是一个这样的工具。它可能通过一个一致的接口来抽象出这三种存储方式,使得开发者无需关心底层实现,只需调用统一的API就能进行数据操作。 ...
带有过期时间的localStorage二次封装
4. `LICENSE`:组件的开源许可证,规定了使用和分发的规则。 通过这个组件,开发者可以放心地在各种浏览器环境下使用`localStorage`,不必担心兼容性问题,从而专注于应用功能的开发。同时,该组件的可扩展性和灵活...
总结来说,"Node.js-webStorage封装库-支持cookie解决方案"是一个旨在简化客户端数据存储并增强其功能的工具,它通过提供统一的接口和扩展功能,使得开发者在处理localStorage、sessionStorage和cookie时更为...
于是手动封装了一个可以在主进程中调用的localstorage。1.安装npm install electron-localstorage2.引用:const storage = require('electron-localstorage');3.使用3.1完美支持所有localStorage的所有api:存储数据...
使用`localStorage`和`sessionStorage`的基本方法包括`setItem`、`getItem`、`removeItem`和`clear`: - `setItem(key, value)`:将键值对存储到本地存储中,如`localStorage.setItem('key', 'value')`。 - `...
在"js-data-localstorage-master"这个压缩包里,我们可以预期找到一个封装了`localStorage`操作的库或框架。这个适配器可能包含以下功能: 1. **键值对操作**:提供简便的方法来设置、获取、更新和删除`...
通过阅读源码,我们可以学习到如何使用闭包封装原始的 localStorage,以及如何在命名空间下进行数据操作的实现细节,包括键名的前缀处理、错误处理和兼容性考虑。 在实际开发中,合理利用 localStorage-ns 可以使...
cookie localStorage sessionStorage 概念 存放在客户端的一段文本信息 存储在客户端的临时信息,只能存放字符串类型数据 同localStorage ...不好用,自己封装 还好 还好 应用 判断用户知否登录 购物车信息