localmemory
Version:
localStorage和sessionStorage的封装
2 lines (1 loc) • 1.1 kB
JavaScript
var e=function(){function e(e){"undefined"!=typeof window&&(this.memory="localStorage"===e?window.localStorage:window.sessionStorage)}return e.prototype.setItem=function(e){if("undefined"!=typeof window){var t={name:"",value:"",expired:"",startTime:(new Date).getTime()/1e3},n=Object.assign({},t,e);if(!n.expired){var o=Object.prototype.toString.call(n.value);return"[object Object]"!==o&&"[object Array]"!==o||(n.value=JSON.stringify(n.value)),this.memory.setItem(n.name,n.value),!0}this.memory.setItem(n.name,JSON.stringify(n))}},e.prototype.getItem=function(e){if("undefined"==typeof window)return null;var t=this.memory.getItem(e);if(t&&"null"!=t&&"undefined"!=t){try{t=JSON.parse(t)}catch(e){}return t.expired?(new Date).getTime()/1e3-t.startTime>t.expired?(this.memory.removeItem(e),null):t.value:t}},e.prototype.removeItem=function(e){return"undefined"!=typeof window&&(this.memory.removeItem(e),!0)},e.prototype.clear=function(){return"undefined"!=typeof window&&(this.memory.clear(),!0)},e}(),t=new e("localStorage"),n=new e("sessionStorage");export{t as localMemory,n as sessionMemory};