mirror of
https://github.com/kuaifan/dootask.git
synced 2026-03-17 19:23:26 +00:00
perf: 缓存迁移
This commit is contained in:
parent
1b23b4621a
commit
529b8b682f
124
resources/assets/js/functions/common.js
vendored
124
resources/assets/js/functions/common.js
vendored
@ -1239,7 +1239,7 @@ const localforage = require("localforage");
|
|||||||
},
|
},
|
||||||
|
|
||||||
IDBSet(key, value) {
|
IDBSet(key, value) {
|
||||||
return localforage.setItem(key, value).then(_ => {})
|
return localforage.setItem(key, value)
|
||||||
},
|
},
|
||||||
|
|
||||||
IDBRemove(key) {
|
IDBRemove(key) {
|
||||||
@ -1282,30 +1282,44 @@ const localforage = require("localforage");
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* =============================================================================
|
* =============================================================================
|
||||||
* ***************************** sessionStorage ****************************
|
* ***************************** localStorage ******************************
|
||||||
* =============================================================================
|
* =============================================================================
|
||||||
*/
|
*/
|
||||||
$.extend({
|
$.extend({
|
||||||
setSessionStorage(key, value) {
|
setStorage(key, value) {
|
||||||
return this.operationSessionStorage(key, value);
|
return this.__operationStorage(key, value);
|
||||||
},
|
},
|
||||||
|
|
||||||
getSessionStorage(key, def = null) {
|
getStorageValue(key) {
|
||||||
let value = this.operationSessionStorage(key);
|
return this.__operationStorage(key);
|
||||||
return value || def;
|
|
||||||
},
|
},
|
||||||
|
|
||||||
getSessionStorageString(key, def = '') {
|
getStorageString(key, def = '') {
|
||||||
let value = this.operationSessionStorage(key);
|
let value = this.__operationStorage(key);
|
||||||
return typeof value === "string" || typeof value === "number" ? value : def;
|
return typeof value === "string" || typeof value === "number" ? value : def;
|
||||||
},
|
},
|
||||||
|
|
||||||
getSessionStorageInt(key, def = 0) {
|
getStorageInt(key, def = 0) {
|
||||||
let value = this.operationSessionStorage(key);
|
let value = this.__operationStorage(key);
|
||||||
return typeof value === "number" ? value : def;
|
return typeof value === "number" ? value : def;
|
||||||
},
|
},
|
||||||
|
|
||||||
operationSessionStorage(key, value) {
|
getStorageBoolean(key, def = false) {
|
||||||
|
let value = this.__operationStorage(key);
|
||||||
|
return typeof value === "boolean" ? value : def;
|
||||||
|
},
|
||||||
|
|
||||||
|
getStorageArray(key, def = []) {
|
||||||
|
let value = this.__operationStorage(key);
|
||||||
|
return this.isArray(value) ? value : def;
|
||||||
|
},
|
||||||
|
|
||||||
|
getStorageJson(key, def = {}) {
|
||||||
|
let value = this.__operationStorage(key);
|
||||||
|
return this.isJson(value) ? value : def;
|
||||||
|
},
|
||||||
|
|
||||||
|
__operationStorage(key, value) {
|
||||||
if (!key) {
|
if (!key) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -1314,31 +1328,103 @@ const localforage = require("localforage");
|
|||||||
keyName = '__state:' + key + '__';
|
keyName = '__state:' + key + '__';
|
||||||
}
|
}
|
||||||
if (typeof value === 'undefined') {
|
if (typeof value === 'undefined') {
|
||||||
return this.loadFromlSession(key, '', keyName);
|
return this.__loadFromlLocal(key, '', keyName);
|
||||||
} else {
|
} else {
|
||||||
this.savaToSession(key, value, keyName);
|
this.__savaToLocal(key, value, keyName);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
savaToSession(key, value, keyName) {
|
__savaToLocal(key, value, keyName) {
|
||||||
try {
|
try {
|
||||||
if (typeof keyName === 'undefined') keyName = '__seller__';
|
if (typeof keyName === 'undefined') keyName = '__seller__';
|
||||||
let seller = window.sessionStorage[keyName];
|
let seller = window.localStorage[keyName];
|
||||||
if (!seller) {
|
if (!seller) {
|
||||||
seller = {};
|
seller = {};
|
||||||
} else {
|
} else {
|
||||||
seller = JSON.parse(seller);
|
seller = JSON.parse(seller);
|
||||||
}
|
}
|
||||||
seller[key] = value;
|
seller[key] = value;
|
||||||
window.sessionStorage[keyName] = JSON.stringify(seller);
|
window.localStorage[keyName] = JSON.stringify(seller);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
loadFromlSession(key, def, keyName) {
|
__loadFromlLocal(key, def, keyName) {
|
||||||
try {
|
try {
|
||||||
if (typeof keyName === 'undefined') keyName = '__seller__';
|
if (typeof keyName === 'undefined') keyName = '__seller__';
|
||||||
let seller = window.sessionStorage[keyName];
|
let seller = window.localStorage[keyName];
|
||||||
|
if (!seller) {
|
||||||
|
return def;
|
||||||
|
}
|
||||||
|
seller = JSON.parse(seller);
|
||||||
|
if (!seller || typeof seller[key] === 'undefined') {
|
||||||
|
return def;
|
||||||
|
}
|
||||||
|
return seller[key];
|
||||||
|
} catch (e) {
|
||||||
|
return def;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
/**
|
||||||
|
* =============================================================================
|
||||||
|
* ***************************** sessionStorage ****************************
|
||||||
|
* =============================================================================
|
||||||
|
*/
|
||||||
|
$.extend({
|
||||||
|
setSessionStorage(key, value) {
|
||||||
|
return this.__operationSessionStorage(key, value);
|
||||||
|
},
|
||||||
|
|
||||||
|
getSessionStorageValue(key) {
|
||||||
|
return this.__operationSessionStorage(key);
|
||||||
|
},
|
||||||
|
|
||||||
|
getSessionStorageString(key, def = '') {
|
||||||
|
let value = this.__operationSessionStorage(key);
|
||||||
|
return typeof value === "string" || typeof value === "number" ? value : def;
|
||||||
|
},
|
||||||
|
|
||||||
|
getSessionStorageInt(key, def = 0) {
|
||||||
|
let value = this.__operationSessionStorage(key);
|
||||||
|
return typeof value === "number" ? value : def;
|
||||||
|
},
|
||||||
|
|
||||||
|
__operationSessionStorage(key, value) {
|
||||||
|
if (!key) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
let keyName = '__state__';
|
||||||
|
if (key.substring(0, 5) === 'cache') {
|
||||||
|
keyName = '__state:' + key + '__';
|
||||||
|
}
|
||||||
|
if (typeof value === 'undefined') {
|
||||||
|
return this.__loadFromlSession(key, '', keyName);
|
||||||
|
} else {
|
||||||
|
this.__savaToSession(key, value, keyName);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
__savaToSession(key, value, keyName) {
|
||||||
|
try {
|
||||||
|
if (typeof keyName === 'undefined') keyName = '__seller__';
|
||||||
|
let seller = window.sessionStorage.getItem(keyName);
|
||||||
|
if (!seller) {
|
||||||
|
seller = {};
|
||||||
|
} else {
|
||||||
|
seller = JSON.parse(seller);
|
||||||
|
}
|
||||||
|
seller[key] = value;
|
||||||
|
window.sessionStorage.setItem(keyName, JSON.stringify(seller))
|
||||||
|
} catch (e) {
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
__loadFromlSession(key, def, keyName) {
|
||||||
|
try {
|
||||||
|
if (typeof keyName === 'undefined') keyName = '__seller__';
|
||||||
|
let seller = window.sessionStorage.getItem(keyName);
|
||||||
if (!seller) {
|
if (!seller) {
|
||||||
return def;
|
return def;
|
||||||
}
|
}
|
||||||
|
|||||||
35
resources/assets/js/store/actions.js
vendored
35
resources/assets/js/store/actions.js
vendored
@ -10,6 +10,21 @@ export default {
|
|||||||
*/
|
*/
|
||||||
init({state, dispatch}) {
|
init({state, dispatch}) {
|
||||||
return new Promise(async resolve => {
|
return new Promise(async resolve => {
|
||||||
|
// 迁移缓存
|
||||||
|
const initTag = await $A.IDBBoolean("initTag")
|
||||||
|
if (!initTag) {
|
||||||
|
await $A.IDBSet("initTag", true)
|
||||||
|
const userInfo = $A.getStorageJson("userInfo")
|
||||||
|
const cacheServerUrl = $A.getStorageString("cacheServerUrl")
|
||||||
|
window.localStorage.clear()
|
||||||
|
if (userInfo.userid > 0) {
|
||||||
|
await $A.IDBSet("userInfo", userInfo)
|
||||||
|
}
|
||||||
|
if (/^https*:\/\//i.test(cacheServerUrl)) {
|
||||||
|
await $A.IDBSet("cacheServerUrl", cacheServerUrl)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// 读取缓存
|
// 读取缓存
|
||||||
state.cacheServerUrl = await $A.IDBString("cacheServerUrl")
|
state.cacheServerUrl = await $A.IDBString("cacheServerUrl")
|
||||||
state.cacheUserBasic = await $A.IDBArray("cacheUserBasic")
|
state.cacheUserBasic = await $A.IDBArray("cacheUserBasic")
|
||||||
@ -570,32 +585,34 @@ export default {
|
|||||||
handleClearCache({state, dispatch}, userInfo) {
|
handleClearCache({state, dispatch}, userInfo) {
|
||||||
return new Promise(async resolve => {
|
return new Promise(async resolve => {
|
||||||
try {
|
try {
|
||||||
|
// state
|
||||||
state.cacheUserBasic = [];
|
state.cacheUserBasic = [];
|
||||||
state.cacheDialogs = [];
|
state.cacheDialogs = [];
|
||||||
state.cacheProjects = [];
|
state.cacheProjects = [];
|
||||||
state.cacheColumns = [];
|
state.cacheColumns = [];
|
||||||
state.cacheTasks = [];
|
state.cacheTasks = [];
|
||||||
//
|
|
||||||
const cacheLoginEmail = await $A.IDBString("cacheLoginEmail");
|
// localStorage
|
||||||
const cacheFileSort = await $A.IDBJson("cacheFileSort");
|
|
||||||
const languageType = window.localStorage.getItem("__language:type__");
|
const languageType = window.localStorage.getItem("__language:type__");
|
||||||
const keyboardData = window.localStorage.getItem("__keyboard:data__");
|
const keyboardData = window.localStorage.getItem("__keyboard:data__");
|
||||||
const themeMode = window.localStorage.getItem("__theme:mode__");
|
const themeMode = window.localStorage.getItem("__theme:mode__");
|
||||||
//
|
|
||||||
window.localStorage.clear();
|
window.localStorage.clear();
|
||||||
await $A.IDBClear();
|
|
||||||
//
|
|
||||||
window.localStorage.setItem("__language:type__", languageType)
|
window.localStorage.setItem("__language:type__", languageType)
|
||||||
window.localStorage.setItem("__keyboard:data__", keyboardData)
|
window.localStorage.setItem("__keyboard:data__", keyboardData)
|
||||||
window.localStorage.setItem("__theme:mode__", themeMode)
|
window.localStorage.setItem("__theme:mode__", themeMode)
|
||||||
|
|
||||||
|
// localForage
|
||||||
|
const cacheLoginEmail = await $A.IDBString("cacheLoginEmail");
|
||||||
|
const cacheFileSort = await $A.IDBJson("cacheFileSort");
|
||||||
|
await $A.IDBClear();
|
||||||
await $A.IDBSet("cacheServerUrl", state.cacheServerUrl);
|
await $A.IDBSet("cacheServerUrl", state.cacheServerUrl);
|
||||||
await $A.IDBSet("cacheProjectParameter", state.cacheProjectParameter);
|
await $A.IDBSet("cacheProjectParameter", state.cacheProjectParameter);
|
||||||
await $A.IDBSet("cacheLoginEmail", cacheLoginEmail);
|
await $A.IDBSet("cacheLoginEmail", cacheLoginEmail);
|
||||||
await $A.IDBSet("cacheFileSort", cacheFileSort);
|
await $A.IDBSet("cacheFileSort", cacheFileSort);
|
||||||
await $A.IDBSet("cacheTaskBrowse", state.cacheTaskBrowse);
|
await $A.IDBSet("cacheTaskBrowse", state.cacheTaskBrowse);
|
||||||
dispatch("saveUserInfo", $A.isJson(userInfo) ? userInfo : state.userInfo);
|
|
||||||
//
|
// userInfo
|
||||||
resolve()
|
dispatch("saveUserInfo", $A.isJson(userInfo) ? userInfo : state.userInfo).then(resolve);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
resolve()
|
resolve()
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user