mirror of
https://github.com/kuaifan/dootask.git
synced 2026-01-07 13:18:16 +00:00
perf: 优化缓存规则
This commit is contained in:
parent
3417d68609
commit
9ae278d622
@ -62,6 +62,7 @@ class WebSocketService implements WebSocketHandlerInterface
|
|||||||
'type' => 'open',
|
'type' => 'open',
|
||||||
'data' => [
|
'data' => [
|
||||||
'fd' => $fd,
|
'fd' => $fd,
|
||||||
|
'ud' => $user->userid,
|
||||||
],
|
],
|
||||||
]));
|
]));
|
||||||
// 通知上线
|
// 通知上线
|
||||||
|
|||||||
148
resources/assets/js/store/actions.js
vendored
148
resources/assets/js/store/actions.js
vendored
@ -14,7 +14,7 @@ export default {
|
|||||||
return new Promise(async resolve => {
|
return new Promise(async resolve => {
|
||||||
let action = null
|
let action = null
|
||||||
|
|
||||||
// 清理缓存
|
// 清理缓存、读取缓存
|
||||||
const clearCache = await $A.IDBString("clearCache")
|
const clearCache = await $A.IDBString("clearCache")
|
||||||
if (clearCache) {
|
if (clearCache) {
|
||||||
if (clearCache === "handle") {
|
if (clearCache === "handle") {
|
||||||
@ -26,40 +26,8 @@ export default {
|
|||||||
const cacheVersion = await $A.IDBString("cacheVersion")
|
const cacheVersion = await $A.IDBString("cacheVersion")
|
||||||
if (cacheVersion !== state.cacheVersion) {
|
if (cacheVersion !== state.cacheVersion) {
|
||||||
await dispatch("handleClearCache")
|
await dispatch("handleClearCache")
|
||||||
}
|
} else {
|
||||||
|
await dispatch("handleReadCache")
|
||||||
// 读取缓存
|
|
||||||
state.clientId = await $A.IDBString("clientId")
|
|
||||||
state.cacheServerUrl = await $A.IDBString("cacheServerUrl")
|
|
||||||
state.cacheUserBasic = await $A.IDBArray("cacheUserBasic")
|
|
||||||
state.cacheDialogs = (await $A.IDBArray("cacheDialogs")).map(item => Object.assign(item, {loading: false, extra_draft_has: item.extra_draft_content ? 1 : 0}))
|
|
||||||
state.cacheProjects = await $A.IDBArray("cacheProjects")
|
|
||||||
state.cacheColumns = await $A.IDBArray("cacheColumns")
|
|
||||||
state.cacheTasks = await $A.IDBArray("cacheTasks")
|
|
||||||
state.cacheProjectParameter = await $A.IDBArray("cacheProjectParameter")
|
|
||||||
state.cacheTaskBrowse = await $A.IDBArray("cacheTaskBrowse")
|
|
||||||
state.dialogMsgs = await $A.IDBArray("dialogMsgs")
|
|
||||||
state.fileLists = await $A.IDBArray("fileLists")
|
|
||||||
state.userInfo = await $A.IDBJson("userInfo")
|
|
||||||
state.callAt = await $A.IDBArray("callAt")
|
|
||||||
state.cacheEmojis = await $A.IDBArray("cacheEmojis")
|
|
||||||
|
|
||||||
// 会员信息
|
|
||||||
if (state.userInfo.userid) {
|
|
||||||
state.userId = state.userInfo.userid = $A.runNum(state.userInfo.userid)
|
|
||||||
state.userToken = state.userInfo.token
|
|
||||||
state.userIsAdmin = $A.inArray("admin", state.userInfo.identity)
|
|
||||||
}
|
|
||||||
const localId = $A.runNum(window.localStorage.getItem("__system:userId__"))
|
|
||||||
const localToken = window.localStorage.getItem("__system:userToken__") || ""
|
|
||||||
if (state.userId === 0 && localId && localToken) {
|
|
||||||
state.userId = localId
|
|
||||||
state.userToken = localToken
|
|
||||||
}
|
|
||||||
|
|
||||||
// ServerUrl
|
|
||||||
if (state.cacheServerUrl) {
|
|
||||||
window.systemInfo.apiUrl = state.cacheServerUrl
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// 主题皮肤
|
// 主题皮肤
|
||||||
@ -887,43 +855,89 @@ export default {
|
|||||||
*/
|
*/
|
||||||
handleClearCache({state, dispatch}, userData) {
|
handleClearCache({state, dispatch}, userData) {
|
||||||
return new Promise(async resolve => {
|
return new Promise(async resolve => {
|
||||||
try {
|
// localStorage
|
||||||
// localStorage
|
const themeConf = window.localStorage.getItem("__system:themeConf__");
|
||||||
const themeConf = window.localStorage.getItem("__system:themeConf__");
|
const languageName = window.localStorage.getItem("__system:languageName__");
|
||||||
const languageName = window.localStorage.getItem("__system:languageName__");
|
const keyboardConf = window.localStorage.getItem("__system:keyboardConf__");
|
||||||
const keyboardConf = window.localStorage.getItem("__system:keyboardConf__");
|
window.localStorage.clear();
|
||||||
window.localStorage.clear();
|
window.localStorage.setItem("__system:themeConf__", themeConf)
|
||||||
window.localStorage.setItem("__system:themeConf__", themeConf)
|
window.localStorage.setItem("__system:languageName__", languageName)
|
||||||
window.localStorage.setItem("__system:languageName__", languageName)
|
window.localStorage.setItem("__system:keyboardConf__", keyboardConf)
|
||||||
window.localStorage.setItem("__system:keyboardConf__", keyboardConf)
|
|
||||||
|
|
||||||
// localForage
|
// localForage
|
||||||
const clientId = await $A.IDBString("clientId")
|
const clientId = await $A.IDBString("clientId")
|
||||||
const cacheServerUrl = await $A.IDBString("cacheServerUrl")
|
const cacheServerUrl = await $A.IDBString("cacheServerUrl")
|
||||||
const cacheProjectParameter = await $A.IDBArray("cacheProjectParameter")
|
const cacheProjectParameter = await $A.IDBArray("cacheProjectParameter")
|
||||||
const cacheLoginEmail = await $A.IDBString("cacheLoginEmail");
|
const cacheLoginEmail = await $A.IDBString("cacheLoginEmail");
|
||||||
const cacheFileSort = await $A.IDBJson("cacheFileSort");
|
const cacheFileSort = await $A.IDBJson("cacheFileSort");
|
||||||
const cacheTaskBrowse = await $A.IDBArray("cacheTaskBrowse")
|
const cacheTaskBrowse = await $A.IDBArray("cacheTaskBrowse")
|
||||||
const cacheEmojis = await $A.IDBArray("cacheEmojis")
|
const cacheEmojis = await $A.IDBArray("cacheEmojis")
|
||||||
const userInfo = await $A.IDBJson("userInfo")
|
const userInfo = await $A.IDBJson("userInfo")
|
||||||
await $A.IDBClear();
|
await $A.IDBClear();
|
||||||
await $A.IDBSet("clientId", clientId);
|
await $A.IDBSet("clientId", clientId);
|
||||||
await $A.IDBSet("cacheServerUrl", cacheServerUrl);
|
await $A.IDBSet("cacheServerUrl", cacheServerUrl);
|
||||||
await $A.IDBSet("cacheProjectParameter", cacheProjectParameter);
|
await $A.IDBSet("cacheProjectParameter", 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", cacheTaskBrowse);
|
await $A.IDBSet("cacheTaskBrowse", cacheTaskBrowse);
|
||||||
await $A.IDBSet("cacheEmojis", cacheEmojis);
|
await $A.IDBSet("cacheEmojis", cacheEmojis);
|
||||||
await $A.IDBSet("cacheVersion", state.cacheVersion)
|
await $A.IDBSet("cacheVersion", state.cacheVersion)
|
||||||
|
|
||||||
// userInfo
|
// userInfo
|
||||||
dispatch("saveUserInfoBase", $A.isJson(userData) ? userData : userInfo).then(resolve);
|
await dispatch("saveUserInfoBase", $A.isJson(userData) ? userData : userInfo)
|
||||||
} catch (e) {
|
|
||||||
resolve()
|
// readCache
|
||||||
}
|
await dispatch("handleReadCache")
|
||||||
|
|
||||||
|
resolve()
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 读取缓存
|
||||||
|
* @param state
|
||||||
|
* @param dispatch
|
||||||
|
* @returns {Promise<unknown>}
|
||||||
|
*/
|
||||||
|
handleReadCache({state}) {
|
||||||
|
return new Promise(async resolve => {
|
||||||
|
state.clientId = await $A.IDBString("clientId")
|
||||||
|
state.cacheServerUrl = await $A.IDBString("cacheServerUrl")
|
||||||
|
state.cacheUserBasic = await $A.IDBArray("cacheUserBasic")
|
||||||
|
state.cacheDialogs = (await $A.IDBArray("cacheDialogs")).map(item => Object.assign(item, {loading: false, extra_draft_has: item.extra_draft_content ? 1 : 0}))
|
||||||
|
state.cacheProjects = await $A.IDBArray("cacheProjects")
|
||||||
|
state.cacheColumns = await $A.IDBArray("cacheColumns")
|
||||||
|
state.cacheTasks = await $A.IDBArray("cacheTasks")
|
||||||
|
state.cacheProjectParameter = await $A.IDBArray("cacheProjectParameter")
|
||||||
|
state.cacheTaskBrowse = await $A.IDBArray("cacheTaskBrowse")
|
||||||
|
state.dialogMsgs = await $A.IDBArray("dialogMsgs")
|
||||||
|
state.fileLists = await $A.IDBArray("fileLists")
|
||||||
|
state.userInfo = await $A.IDBJson("userInfo")
|
||||||
|
state.callAt = await $A.IDBArray("callAt")
|
||||||
|
state.cacheEmojis = await $A.IDBArray("cacheEmojis")
|
||||||
|
|
||||||
|
// 会员信息
|
||||||
|
if (state.userInfo.userid) {
|
||||||
|
state.userId = state.userInfo.userid = $A.runNum(state.userInfo.userid)
|
||||||
|
state.userToken = state.userInfo.token
|
||||||
|
state.userIsAdmin = $A.inArray("admin", state.userInfo.identity)
|
||||||
|
}
|
||||||
|
const localId = $A.runNum(window.localStorage.getItem("__system:userId__"))
|
||||||
|
const localToken = window.localStorage.getItem("__system:userToken__") || ""
|
||||||
|
if (state.userId === 0 && localId && localToken) {
|
||||||
|
state.userId = localId
|
||||||
|
state.userToken = localToken
|
||||||
|
}
|
||||||
|
|
||||||
|
// ServerUrl
|
||||||
|
if (state.cacheServerUrl) {
|
||||||
|
window.systemInfo.apiUrl = state.cacheServerUrl
|
||||||
|
}
|
||||||
|
|
||||||
|
resolve()
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
/** *****************************************************************************************/
|
/** *****************************************************************************************/
|
||||||
/** *************************************** 新窗口打开 ****************************************/
|
/** *************************************** 新窗口打开 ****************************************/
|
||||||
/** *****************************************************************************************/
|
/** *****************************************************************************************/
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user