var Storage = function Storage ( name, duration ) {
this._name = name || this._name;
this._duration = duration || this._duration;
this._init();
}
Storage.prototype = {
_name: '_nameOfYourSrorage',
_duration: 5000,
// type == local || session
_save: function( type ) {
window[ type + 'Storage' ].setItem( this._name, JSON.stringify( this[ type ] ) );
},
_get: function( type ) {
this[ type ] = JSON.parse( window[ type + 'Storage' ].getItem( this._name ) ) || {};
},
_init: function() {
var self = this;
self._get( 'local' );
self._get( 'session' );
( function callee() {
setTimeout( function() {
self._save( 'local' );
callee();
}, self._duration );
})();
window.addEventListener( 'beforeunload', function() {
self._save( 'local' );
self._save( 'session' );
} );
},
local: {},
session: {}
};
Вот самый адекватный и производительный вариант использования хранилища, как объекта. Взял из своего проекта, может быть кому-то будет полезным.
var storage = new Storage;
storage.local = {a:4, b: {c:5}};
storage.session = {a:7, b: {c:8}};
b = storage.local.b;
b.c = {d:6};
Стоит объяснять что к чему?