Use localForage to exceed 5M space limit
This commit is contained in:
parent
2258fc90d0
commit
740b3bffc9
@ -127,6 +127,7 @@
|
||||
<script src='libs/thirdparty/mid.min.js'></script>
|
||||
<script src='libs/thirdparty/lz-string.min.js'></script>
|
||||
<script src='libs/thirdparty/priority-queue.min.js'></script>
|
||||
<script src='libs/thirdparty/localforage.min.js'></script>
|
||||
<script id='mainScript' src='main.js'></script>
|
||||
<script>main.init();main.listen();</script>
|
||||
</body>
|
||||
|
||||
@ -1427,8 +1427,12 @@ actions.prototype.clickSL = function(x,y) {
|
||||
core.drawTip("无法删除自动存档!");
|
||||
}
|
||||
else {
|
||||
core.removeLocalStorage("save"+id);
|
||||
core.ui.drawSLPanel(index);
|
||||
// core.removeLocalStorage("save"+id);
|
||||
core.removeLocalForage("save"+id, function() {
|
||||
core.ui.drawSLPanel(index, true);
|
||||
}, function() {
|
||||
core.drawTip("无法删除存档!");
|
||||
})
|
||||
}
|
||||
}
|
||||
else {
|
||||
@ -1523,8 +1527,13 @@ actions.prototype.keyUpSL = function (keycode) {
|
||||
core.drawTip("无法删除自动存档!");
|
||||
}
|
||||
else {
|
||||
core.removeLocalStorage("save"+(5*page+offset));
|
||||
core.ui.drawSLPanel(index);
|
||||
// core.removeLocalStorage("save"+(5*page+offset));
|
||||
// core.ui.drawSLPanel(index);
|
||||
core.removeLocalForage("save"+(5*page+offset), function() {
|
||||
core.ui.drawSLPanel(index, true);
|
||||
}, function() {
|
||||
core.drawTip("无法删除存档!");
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1799,10 +1808,12 @@ actions.prototype.clickSyncSave = function (x,y) {
|
||||
core.ui.drawConfirmBox("所有本地存档都将被覆盖,确认?", function () {
|
||||
for (var i=1;i<=5*(main.savePages||30);i++) {
|
||||
if (i<=data.length) {
|
||||
core.setLocalStorage("save"+i, data[i-1]);
|
||||
// core.setLocalStorage("save"+i, data[i-1]);
|
||||
core.setLocalForage("save"+i, data[i-1]);
|
||||
}
|
||||
else {
|
||||
core.removeLocalStorage("save"+i);
|
||||
// core.removeLocalStorage("save"+i);
|
||||
core.removeLocalForage("save"+i);
|
||||
}
|
||||
}
|
||||
core.drawText("读取成功!\n你的本地所有存档均已被覆盖。");
|
||||
@ -1812,8 +1823,10 @@ actions.prototype.clickSyncSave = function (x,y) {
|
||||
})
|
||||
}
|
||||
else {
|
||||
core.setLocalStorage("save"+core.status.saveIndex, data);
|
||||
core.drawText("同步成功!\n单存档已覆盖至存档"+core.status.saveIndex);
|
||||
// core.setLocalStorage("save"+core.status.saveIndex, data);
|
||||
core.setLocalForage("save"+core.status.saveIndex, data, function() {
|
||||
core.drawText("同步成功!\n单存档已覆盖至存档"+core.status.saveIndex);
|
||||
})
|
||||
}
|
||||
}, function () {
|
||||
|
||||
@ -1931,6 +1944,7 @@ actions.prototype.clickLocalSaveSelect = function (x,y) {
|
||||
|
||||
if (y>=topIndex && y<topIndex+choices.length) {
|
||||
var selection = y - topIndex;
|
||||
/*
|
||||
switch (selection) {
|
||||
case 0:
|
||||
saves=[];
|
||||
@ -1947,15 +1961,21 @@ actions.prototype.clickLocalSaveSelect = function (x,y) {
|
||||
case 2:
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (core.isset(saves)) {
|
||||
var content = {
|
||||
"name": core.firstData.name,
|
||||
"version": core.firstData.version,
|
||||
"data": saves
|
||||
*/
|
||||
if (selection<2) {
|
||||
core.control.getSaves(selection==0?null:core.status.saveIndex, function(saves) {
|
||||
if (core.isset(saves)) {
|
||||
var content = {
|
||||
"name": core.firstData.name,
|
||||
"version": core.firstData.version,
|
||||
"data": saves
|
||||
}
|
||||
core.download(core.firstData.name+"_"+core.formatDate2(new Date())+".h5save", JSON.stringify(content));
|
||||
}
|
||||
})
|
||||
}
|
||||
core.download(core.firstData.name+"_"+core.formatDate2(new Date())+".h5save", JSON.stringify(content));
|
||||
}
|
||||
|
||||
core.status.event.selection=2;
|
||||
core.ui.drawSyncSave();
|
||||
}
|
||||
@ -1997,15 +2017,18 @@ actions.prototype.clickStorageRemove = function (x, y) {
|
||||
var selection = y - topIndex;
|
||||
switch (selection) {
|
||||
case 0:
|
||||
localStorage.clear();
|
||||
core.drawText("\t[操作成功]你的所有存档已被清空。");
|
||||
localforage.clear(function () {
|
||||
core.drawText("\t[操作成功]你的所有存档已被清空。");
|
||||
});
|
||||
break;
|
||||
case 1:
|
||||
for (var i=1;i<=5*(main.savePages||30);i++) {
|
||||
core.removeLocalStorage("save"+i);
|
||||
// core.removeLocalStorage("save"+i);
|
||||
core.removeLocalForage("save"+i);
|
||||
}
|
||||
core.drawText("\t[操作成功]当前塔的存档已被清空。");
|
||||
core.removeLocalStorage("autoSave");
|
||||
core.removeLocalForage("autoSave", function() {
|
||||
core.drawText("\t[操作成功]当前塔的存档已被清空。");
|
||||
});
|
||||
break;
|
||||
case 2:
|
||||
core.status.event.selection=5;
|
||||
|
||||
222
libs/control.js
222
libs/control.js
@ -2180,7 +2180,7 @@ control.prototype.autosave = function (removeLast) {
|
||||
var x=null;
|
||||
if (removeLast)
|
||||
x=core.status.route.pop();
|
||||
core.setLocalStorage("autoSave", core.saveData())
|
||||
core.setLocalForage("autoSave", core.saveData())
|
||||
if (removeLast && core.isset(x))
|
||||
core.status.route.push(x);
|
||||
}
|
||||
@ -2192,6 +2192,18 @@ control.prototype.doSL = function (id, type) {
|
||||
core.drawTip('不能覆盖自动存档!');
|
||||
return;
|
||||
}
|
||||
core.setLocalForage("save"+id, core.saveData(), function() {
|
||||
core.ui.closePanel();
|
||||
core.drawTip('存档成功!');
|
||||
if (id!="autoSave") {
|
||||
core.status.saveIndex=id;
|
||||
core.setLocalStorage('saveIndex2', core.status.saveIndex);
|
||||
}
|
||||
}, function(err) {
|
||||
console.info(err);
|
||||
core.drawTip("存档失败,请将控制台的报错信息反馈给管理员。");
|
||||
})
|
||||
/*
|
||||
if (core.setLocalStorage("save"+id, core.saveData())) {
|
||||
core.ui.closePanel();
|
||||
core.drawTip('存档成功!');
|
||||
@ -2203,105 +2215,105 @@ control.prototype.doSL = function (id, type) {
|
||||
else {
|
||||
core.drawTip('存储空间不足,请覆盖已有的存档或在菜单栏中进行清理');
|
||||
}
|
||||
*/
|
||||
return;
|
||||
}
|
||||
else if (type=='load') {
|
||||
var data = core.getLocalStorage(id=='autoSave'?id:"save"+id, null);
|
||||
if (!core.isset(data)) {
|
||||
// var data = core.getLocalStorage(id=='autoSave'?id:"save"+id, null);
|
||||
|
||||
core.getLocalForage(id=='autoSave'?id:"save"+id, function(data) {
|
||||
if (!core.isset(data)) {
|
||||
core.drawTip("无效的存档");
|
||||
return;
|
||||
}
|
||||
if (data.version != core.firstData.version) {
|
||||
// core.drawTip("存档版本不匹配");
|
||||
if (confirm("存档版本不匹配!\n你想回放此存档的录像吗?\n可以随时停止录像播放以继续游戏。")) {
|
||||
core.dom.startPanel.style.display = 'none';
|
||||
var seed = data.hero.flags.seed;
|
||||
core.resetStatus(core.firstData.hero, data.hard, core.firstData.floorId, null, core.initStatus.maps);
|
||||
core.events.setInitData(data.hard);
|
||||
core.setFlag('seed', seed);
|
||||
core.setFlag('rand', seed);
|
||||
core.changeFloor(core.status.floorId, null, core.firstData.hero.loc, null, function() {
|
||||
core.startReplay(core.decodeRoute(data.route));
|
||||
}, true);
|
||||
}
|
||||
return;
|
||||
}
|
||||
core.ui.closePanel();
|
||||
core.loadData(data, function() {
|
||||
core.drawTip("读档成功");
|
||||
if (id!="autoSave") {
|
||||
core.status.saveIndex=id;
|
||||
core.setLocalStorage('saveIndex2', core.status.saveIndex);
|
||||
}
|
||||
});
|
||||
}, function(err) {
|
||||
core.drawTip("无效的存档");
|
||||
return;
|
||||
}
|
||||
if (data.version != core.firstData.version) {
|
||||
// core.drawTip("存档版本不匹配");
|
||||
if (confirm("存档版本不匹配!\n你想回放此存档的录像吗?\n可以随时停止录像播放以继续游戏。")) {
|
||||
core.dom.startPanel.style.display = 'none';
|
||||
var seed = data.hero.flags.seed;
|
||||
core.resetStatus(core.firstData.hero, data.hard, core.firstData.floorId, null, core.initStatus.maps);
|
||||
core.events.setInitData(data.hard);
|
||||
core.setFlag('seed', seed);
|
||||
core.setFlag('rand', seed);
|
||||
core.changeFloor(core.status.floorId, null, core.firstData.hero.loc, null, function() {
|
||||
core.startReplay(core.decodeRoute(data.route));
|
||||
}, true);
|
||||
}
|
||||
return;
|
||||
}
|
||||
core.ui.closePanel();
|
||||
core.loadData(data, function() {
|
||||
core.drawTip("读档成功");
|
||||
if (id!="autoSave") {
|
||||
core.status.saveIndex=id;
|
||||
core.setLocalStorage('saveIndex2', core.status.saveIndex);
|
||||
}
|
||||
});
|
||||
})
|
||||
|
||||
return;
|
||||
}
|
||||
else if (type == 'replayLoad') {
|
||||
var data = core.getLocalStorage(id=='autoSave'?id:"save"+id, null);
|
||||
if (!core.isset(data)) {
|
||||
// var data = core.getLocalStorage(id=='autoSave'?id:"save"+id, null);
|
||||
core.getLocalForage(id=='autoSave'?id:"save"+id, function(data) {
|
||||
if (!core.isset(data)) {
|
||||
core.drawTip("无效的存档");
|
||||
return;
|
||||
}
|
||||
if (data.version != core.firstData.version) {
|
||||
core.drawTip("存档版本不匹配");
|
||||
return;
|
||||
}
|
||||
if (data.hard != core.status.hard) {
|
||||
core.drawTip("游戏难度不匹配!");
|
||||
return;
|
||||
}
|
||||
var route = core.subarray(core.status.route, core.decodeRoute(data.route));
|
||||
if (!core.isset(route) || data.hero.flags.seed!=core.getFlag('seed')) {
|
||||
core.drawTip("无法从此存档回放录像");
|
||||
return;
|
||||
}
|
||||
core.loadData(data, function () {
|
||||
core.startReplay(route);
|
||||
core.drawTip("回退到存档节点");
|
||||
});
|
||||
}, function(err) {
|
||||
console.info(err);
|
||||
core.drawTip("无效的存档");
|
||||
return;
|
||||
}
|
||||
if (data.version != core.firstData.version) {
|
||||
core.drawTip("存档版本不匹配");
|
||||
return;
|
||||
}
|
||||
if (data.hard != core.status.hard) {
|
||||
core.drawTip("游戏难度不匹配!");
|
||||
return;
|
||||
}
|
||||
var route = core.subarray(core.status.route, core.decodeRoute(data.route));
|
||||
if (!core.isset(route) || data.hero.flags.seed!=core.getFlag('seed')) {
|
||||
core.drawTip("无法从此存档回放录像");
|
||||
return;
|
||||
}
|
||||
core.loadData(data, function () {
|
||||
core.startReplay(route);
|
||||
core.drawTip("回退到存档节点");
|
||||
});
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
////// 同步存档到服务器 //////
|
||||
control.prototype.syncSave = function (type) {
|
||||
var saves=null;
|
||||
// data
|
||||
if (type=='all') {
|
||||
saves=[];
|
||||
for (var i=1;i<=5*(main.savePages||30);i++) {
|
||||
var data = core.getLocalStorage("save"+i, null);
|
||||
if (core.isset(data)) {
|
||||
saves.push(data);
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
saves=core.getLocalStorage("save"+core.status.saveIndex, null);
|
||||
}
|
||||
if (!core.isset(saves)) {
|
||||
core.drawText("没有要同步的存档");
|
||||
return;
|
||||
}
|
||||
core.ui.drawWaiting("正在同步,请稍后...");
|
||||
|
||||
var formData = new FormData();
|
||||
formData.append('type', 'save');
|
||||
formData.append('name', core.firstData.name);
|
||||
var save_text = JSON.stringify(saves);
|
||||
formData.append('data', save_text);
|
||||
|
||||
core.http("POST", "/games/sync.php", formData, function (data) {
|
||||
var response = JSON.parse(data);
|
||||
if (response.code<0) {
|
||||
core.drawText("出错啦!\n无法同步存档到服务器。\n错误原因:"+response.msg);
|
||||
core.control.getSaves(type=='all'?null:core.status.saveIndex, function (saves) {
|
||||
if (!core.isset(saves)) {
|
||||
core.drawText("没有要同步的存档");
|
||||
return;
|
||||
}
|
||||
else {
|
||||
core.drawText((type=='all'?"所有存档":"存档"+core.status.saveIndex)+"同步成功!\n\n您的存档编号: "
|
||||
+response.code+"\n您的存档密码: "+response.msg
|
||||
+"\n\n请牢记以上两个信息(如截图等),在从服务器\n同步存档时使用。")
|
||||
}
|
||||
}, function (e) {
|
||||
core.drawText("出错啦!\n无法同步存档到服务器。\n错误原因:"+e);
|
||||
|
||||
var formData = new FormData();
|
||||
formData.append('type', 'save');
|
||||
formData.append('name', core.firstData.name);
|
||||
var save_text = JSON.stringify(saves);
|
||||
formData.append('data', save_text);
|
||||
|
||||
core.http("POST", "/games/sync.php", formData, function (data) {
|
||||
var response = JSON.parse(data);
|
||||
if (response.code<0) {
|
||||
core.drawText("出错啦!\n无法同步存档到服务器。\n错误原因:"+response.msg);
|
||||
}
|
||||
else {
|
||||
core.drawText((type=='all'?"所有存档":"存档"+core.status.saveIndex)+"同步成功!\n\n您的存档编号: "
|
||||
+response.code+"\n您的存档密码: "+response.msg
|
||||
+"\n\n请牢记以上两个信息(如截图等),在从服务器\n同步存档时使用。")
|
||||
}
|
||||
}, function (e) {
|
||||
core.drawText("出错啦!\n无法同步存档到服务器。\n错误原因:"+e);
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
@ -2338,10 +2350,12 @@ control.prototype.syncLoad = function () {
|
||||
core.ui.drawConfirmBox("所有本地存档都将被覆盖,确认?", function () {
|
||||
for (var i=1;i<=5*(main.savePages||30);i++) {
|
||||
if (i<=data.length) {
|
||||
core.setLocalStorage("save"+i, data[i-1]);
|
||||
// core.setLocalStorage("save"+i, data[i-1]);
|
||||
core.setLocalForage("save"+i, data[i-1]);
|
||||
}
|
||||
else {
|
||||
core.removeLocalStorage("save"+i);
|
||||
// core.removeLocalStorage("save"+i);
|
||||
core.removeLocalForage("save"+i);
|
||||
}
|
||||
}
|
||||
core.drawText("同步成功!\n你的本地所有存档均已被覆盖。");
|
||||
@ -2352,8 +2366,10 @@ control.prototype.syncLoad = function () {
|
||||
}
|
||||
else {
|
||||
// 只覆盖单存档
|
||||
core.setLocalStorage("save"+core.status.saveIndex, data);
|
||||
core.drawText("同步成功!\n单存档已覆盖至存档"+core.status.saveIndex);
|
||||
// core.setLocalStorage("save"+core.status.saveIndex, data);
|
||||
core.setLocalForage("save"+core.status.saveIndex, data, function() {
|
||||
core.drawText("同步成功!\n单存档已覆盖至存档"+core.status.saveIndex);
|
||||
});
|
||||
}
|
||||
break;
|
||||
case -1:
|
||||
@ -2424,6 +2440,34 @@ control.prototype.loadData = function (data, callback) {
|
||||
}, true);
|
||||
}
|
||||
|
||||
control.prototype.getSaves = function (index, callback) {
|
||||
if (core.isset(index)) {
|
||||
core.getLocalForage("save"+index, function(data) {
|
||||
if (core.isset(callback)) callback(data);
|
||||
}, function(err) {
|
||||
if (core.isset(callback))
|
||||
callback(null);
|
||||
})
|
||||
return;
|
||||
}
|
||||
var number = 5*(main.savePages||30);
|
||||
var saves = [];
|
||||
var load = function (index, callback) {
|
||||
if (index > number) {
|
||||
if (core.isset(callback)) callback(saves);
|
||||
return;
|
||||
}
|
||||
core.getLocalForage("save"+index, function (data) {
|
||||
saves.push(data);
|
||||
load(index+1, callback);
|
||||
}, function(err) {
|
||||
// saves.push(null);
|
||||
load(index+1, callback);
|
||||
})
|
||||
}
|
||||
load(1, callback);
|
||||
}
|
||||
|
||||
////// 设置勇士属性 //////
|
||||
control.prototype.setStatus = function (statusName, statusVal) {
|
||||
if (statusName == 'exp') statusName = 'experience';
|
||||
|
||||
12
libs/core.js
12
libs/core.js
@ -897,6 +897,18 @@ core.prototype.removeLocalStorage = function (key) {
|
||||
core.utils.removeLocalStorage(key);
|
||||
}
|
||||
|
||||
core.prototype.setLocalForage = function (key, value, successCallback, errorCallback) {
|
||||
core.utils.setLocalForage(key, value, successCallback, errorCallback);
|
||||
}
|
||||
|
||||
core.prototype.getLocalForage = function (key, successCallback, errorCallback) {
|
||||
core.utils.getLocalForage(key, successCallback, errorCallback);
|
||||
}
|
||||
|
||||
core.prototype.removeLocalForage = function (key, successCallback, errorCallback) {
|
||||
core.utils.removeLocalForage(key, successCallback, errorCallback);
|
||||
}
|
||||
|
||||
////// 深拷贝一个对象 //////
|
||||
core.prototype.clone = function (data) {
|
||||
return core.utils.clone(data);
|
||||
|
||||
7
libs/thirdparty/localforage.min.js
vendored
Normal file
7
libs/thirdparty/localforage.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
39
libs/ui.js
39
libs/ui.js
@ -1721,7 +1721,7 @@ ui.prototype.drawToolbox = function(index) {
|
||||
}
|
||||
|
||||
////// 绘制存档/读档界面 //////
|
||||
ui.prototype.drawSLPanel = function(index) {
|
||||
ui.prototype.drawSLPanel = function(index, refresh) {
|
||||
if (!core.isset(index)) index=1;
|
||||
if (index<0) index=0;
|
||||
|
||||
@ -1731,7 +1731,14 @@ ui.prototype.drawSLPanel = function(index) {
|
||||
if (offset>5) offset=5;
|
||||
index=10*page+offset;
|
||||
|
||||
var last_page = -1;
|
||||
if (core.isset(core.status.event.data)) {
|
||||
last_page = parseInt(core.status.event.data/10);
|
||||
}
|
||||
|
||||
core.status.event.data=index;
|
||||
if (!core.isset(core.status.event.ui))
|
||||
core.status.event.ui = [];
|
||||
|
||||
core.clearMap('ui');
|
||||
core.setAlpha('ui', 0.85);
|
||||
@ -1745,14 +1752,15 @@ ui.prototype.drawSLPanel = function(index) {
|
||||
if (core.status.event.selection) strokeColor = '#FF6A6A';
|
||||
|
||||
var name=core.status.event.id=='save'?"存档":core.status.event.id=='load'?"读档":core.status.event.id=='replayLoad'?"回放":"";
|
||||
for (var i=0;i<6;i++) {
|
||||
|
||||
var draw = function (data, i) {
|
||||
core.status.event.ui[i] = data;
|
||||
var id=5*page+i;
|
||||
var data=core.getLocalStorage(i==0?"autoSave":"save"+id, null);
|
||||
if (i<3) {
|
||||
core.fillText('ui', i==0?"自动存档":name+id, (2*i+1)*u, 35, '#FFFFFF', "bold 17px Verdana");
|
||||
core.strokeRect('ui', (2*i+1)*u-size/2, 50, size, size, i==offset?strokeColor:'#FFFFFF', i==offset?6:2);
|
||||
if (core.isset(data) && core.isset(data.floorId)) {
|
||||
this.drawThumbnail(data.floorId, 'ui', core.maps.load(data.maps, data.floorId).blocks, (2*i+1)*u-size/2, 50, size, data.hero.loc.x, data.hero.loc.y, data.hero.loc, data.hero.flags.heroIcon||"hero.png");
|
||||
core.ui.drawThumbnail(data.floorId, 'ui', core.maps.load(data.maps, data.floorId).blocks, (2*i+1)*u-size/2, 50, size, data.hero.loc.x, data.hero.loc.y, data.hero.loc, data.hero.flags.heroIcon||"hero.png");
|
||||
core.fillText('ui', core.formatDate(new Date(data.time)), (2*i+1)*u, 65+size, '#FFFFFF', '10px Verdana');
|
||||
}
|
||||
else {
|
||||
@ -1764,7 +1772,7 @@ ui.prototype.drawSLPanel = function(index) {
|
||||
core.fillText('ui', name+id, (2*i-5)*u, 230, '#FFFFFF', "bold 17px Verdana");
|
||||
core.strokeRect('ui', (2*i-5)*u-size/2, 245, size, size, i==offset?strokeColor:'#FFFFFF', i==offset?6:2);
|
||||
if (core.isset(data) && core.isset(data.floorId)) {
|
||||
this.drawThumbnail(data.floorId, 'ui', core.maps.load(data.maps, data.floorId).blocks, (2*i-5)*u-size/2, 245, size, data.hero.loc.x, data.hero.loc.y, data.hero.loc, data.hero.flags.heroIcon||"hero.png");
|
||||
core.ui.drawThumbnail(data.floorId, 'ui', core.maps.load(data.maps, data.floorId).blocks, (2*i-5)*u-size/2, 245, size, data.hero.loc.x, data.hero.loc.y, data.hero.loc, data.hero.flags.heroIcon||"hero.png");
|
||||
core.fillText('ui', core.formatDate(new Date(data.time)), (2*i-5)*u, 260+size, '#FFFFFF', '10px Verdana');
|
||||
}
|
||||
else {
|
||||
@ -1772,7 +1780,28 @@ ui.prototype.drawSLPanel = function(index) {
|
||||
core.fillText('ui', '空', (2*i-5)*u, 245+70, '#FFFFFF', 'bold 30px Verdana');
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
var drawSave = function (i) {
|
||||
|
||||
core.getLocalForage(i==0?"autoSave":"save"+(5*page+i), function(data) {
|
||||
draw(data, i);
|
||||
}, function(err) {
|
||||
draw(null, i);
|
||||
})
|
||||
}
|
||||
|
||||
if (page == last_page && !refresh) {
|
||||
for (var i=0;i<6;i++) {
|
||||
draw(core.status.event.ui[i]||null, i);
|
||||
}
|
||||
}
|
||||
else {
|
||||
for (var i=0;i<6;i++) {
|
||||
drawSave(i);
|
||||
}
|
||||
}
|
||||
|
||||
this.drawPagination(page+1, max_page);
|
||||
|
||||
if (core.status.event.selection)
|
||||
|
||||
@ -124,6 +124,51 @@ utils.prototype.removeLocalStorage = function (key) {
|
||||
localStorage.removeItem(core.firstData.name+"_"+key);
|
||||
}
|
||||
|
||||
utils.prototype.setLocalForage = function (key, value, successCallback, errorCallback) {
|
||||
// Save to localforage
|
||||
var compressed = LZString.compress(JSON.stringify(value));
|
||||
localforage.setItem(core.firstData.name+"_"+key, compressed, function (err) {
|
||||
if (core.isset(err)) {
|
||||
if (core.isset(errorCallback)) errorCallback(err);
|
||||
}
|
||||
else if (core.isset(successCallback)) successCallback();
|
||||
});
|
||||
}
|
||||
|
||||
utils.prototype.getLocalForage = function (key, successCallback, errorCallback) {
|
||||
localforage.getItem(core.firstData.name+"_"+key, function (err, value) {
|
||||
if (core.isset(err)) {
|
||||
if (core.isset(errorCallback)) errorCallback(err);
|
||||
}
|
||||
else {
|
||||
if (core.isset(value)) {
|
||||
var output = LZString.decompress(value);
|
||||
if (core.isset(output) && output.length>0) {
|
||||
try {
|
||||
if (core.isset(successCallback))
|
||||
successCallback(JSON.parse(output));
|
||||
return;
|
||||
}
|
||||
catch (ee) {console.log(ee);}
|
||||
}
|
||||
if (core.isset(successCallback))
|
||||
successCallback(JSON.parse(value));
|
||||
return;
|
||||
}
|
||||
if (core.isset(errorCallback)) errorCallback("Value is null");
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
utils.prototype.removeLocalForage = function (key, successCallback, errorCallback) {
|
||||
localforage.removeItem(core.firstData.name+"_"+key, function (err) {
|
||||
if (core.isset(err)) {
|
||||
if (core.isset(errorCallback)) errorCallback(err);
|
||||
}
|
||||
else if (core.isset(successCallback)) successCallback();
|
||||
})
|
||||
}
|
||||
|
||||
////// 深拷贝一个对象 //////
|
||||
utils.prototype.clone = function (data) {
|
||||
if (!core.isset(data)) return data;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user