From c8364ed17b0538022b7412c8c36d607077c05305 Mon Sep 17 00:00:00 2001 From: kuaifan Date: Thu, 13 Mar 2025 20:54:35 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E4=BC=98=E5=8C=96=E8=8D=89=E7=A8=BF?= =?UTF-8?q?=E6=B6=88=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resources/assets/js/functions/common.js | 1 + resources/assets/js/store/actions.js | 17 +++++++++++++++-- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/resources/assets/js/functions/common.js b/resources/assets/js/functions/common.js index beb99a7d9..91b07aebd 100755 --- a/resources/assets/js/functions/common.js +++ b/resources/assets/js/functions/common.js @@ -1361,6 +1361,7 @@ const timezone = require("dayjs/plugin/timezone"); } this.__IDBTimer[key] = setTimeout(async _ => { await localforage.setItem(key, value) + delete this.__IDBTimer[key] }, delay) }, diff --git a/resources/assets/js/store/actions.js b/resources/assets/js/store/actions.js index 325bda1c3..903c2fe10 100644 --- a/resources/assets/js/store/actions.js +++ b/resources/assets/js/store/actions.js @@ -1,9 +1,10 @@ import * as openpgp from 'openpgp_hi/lightweight'; -import {debounce} from "lodash"; import {initLanguage, languageList, languageName} from "../language"; import {$callData, $urlSafe, SSEClient} from './utils' import emitter from "./events"; +const saveDraftTimers = {} + export default { /** * 预加载 @@ -3186,7 +3187,19 @@ export default { window.__dialogDraft = {id, content} return } - commit('SET_DIALOG_DRAFT', {id, content}) + + // 清除已有的计时器 + if (saveDraftTimers[id]) { + clearTimeout(saveDraftTimers[id]) + delete saveDraftTimers[id] + } + + // 创建新的计时器 + saveDraftTimers[id] = setTimeout(() => { + commit('SET_DIALOG_DRAFT', {id, content}) + delete saveDraftTimers[id] + resolve() + }, content ? 600 : 0) }, /** *****************************************************************************************/