From abf5534165d887cc92d4e3119e8f6114c7d2ee9e Mon Sep 17 00:00:00 2001 From: Lykin <137850705+tiny-craft@users.noreply.github.com> Date: Wed, 15 May 2024 17:37:24 +0800 Subject: [PATCH] perf: re-refresh with re-click the activated key after more then 1 sec (#242) --- frontend/src/components/sidebar/BrowserTree.vue | 14 +++++++++++++- frontend/src/stores/tab.js | 13 ++++++++++++- 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/frontend/src/components/sidebar/BrowserTree.vue b/frontend/src/components/sidebar/BrowserTree.vue index 5c37fe2..83aa49b 100644 --- a/frontend/src/components/sidebar/BrowserTree.vue +++ b/frontend/src/components/sidebar/BrowserTree.vue @@ -598,13 +598,25 @@ const renderSuffix = ({ option }) => { return null } +const lastLoadKey = ref(0) + /** * * @param {RedisNodeItem} node */ const updateKeyDetail = (node) => { if (node.type === ConnectionType.RedisValue) { - if (tabStore.setActivatedKey(props.server, node.key)) { + const preK = tabStore.getActivatedKey(props.server) + if (!isEmpty(preK) && preK === node.key && Date.now() - lastLoadKey.value > 1000) { + // reload key already activated + lastLoadKey.value = Date.now() + const { db, redisKey, redisKeyCode } = node + browserStore.reloadKey({ + server: props.server, + db, + key: redisKeyCode || redisKey, + }) + } else if (tabStore.setActivatedKey(props.server, node.key)) { const { db, redisKey, redisKeyCode } = node browserStore.loadKeySummary({ server: props.server, diff --git a/frontend/src/stores/tab.js b/frontend/src/stores/tab.js index 523827c..58f0f7a 100644 --- a/frontend/src/stores/tab.js +++ b/frontend/src/stores/tab.js @@ -780,9 +780,20 @@ const useTabStore = defineStore('tab', { }, /** - * set activated key + * get activated key + * @param {string} server + * @return {string|null} + */ + getActivatedKey(server) { + let tab = find(this.tabList, { name: server }) + return get(tab, 'activatedKey') + }, + + /** + * set activated key and return current activatedKey * @param {string} server * @param {string} key + * @return {boolean} */ setActivatedKey(server, key) { /** @type TabItem**/