31 lines
938 B
JavaScript
31 lines
938 B
JavaScript
/** Allows to save objects to HTML5 local storage.
|
|
* However, it can only save properties, not functions.
|
|
*/
|
|
var ObjectStorage = (function() {
|
|
'use strict';
|
|
try {
|
|
var _s = localStorage;
|
|
return {
|
|
save :
|
|
function(key, item) {
|
|
_s.setItem(key, JSON.stringify(item, function(key, val) {
|
|
if (key == '$$hashKey') {
|
|
return undefined;
|
|
}
|
|
return val;
|
|
}));
|
|
},
|
|
load : function(key) { return JSON.parse(_s.getItem(key)); },
|
|
clear : function() { _s.clear(); }
|
|
};
|
|
} catch (e) {
|
|
alert('There is no local storage for you.' +
|
|
' If you refresh the page, all progress will be lost');
|
|
return {
|
|
save : function(key, item) {},
|
|
load : function(key) { return null; },
|
|
clear : function() {}
|
|
};
|
|
};
|
|
}());
|