From cabbeb07d07398d93aba3e2bceec1dae5ad43ee6 Mon Sep 17 00:00:00 2001 From: kuaifan Date: Fri, 14 Jan 2022 10:23:23 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96websocket=E9=87=8D=E8=BF=9E?= =?UTF-8?q?=E5=90=8E=E7=9A=84=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resources/assets/js/components/AppDown.vue | 13 +++++++++---- resources/assets/js/pages/manage.vue | 7 ++++++- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/resources/assets/js/components/AppDown.vue b/resources/assets/js/components/AppDown.vue index 7ac2791d..a78b8b22 100644 --- a/resources/assets/js/components/AppDown.vue +++ b/resources/assets/js/components/AppDown.vue @@ -27,15 +27,14 @@ export default { repoData: {}, status: 0, // 0 没有,1有客户端,2客户端有新版本 - releases: {}, downInfo: {}, + releases: {}, + releaseTimeout: null, websocketOpenSubscribe: null } }, mounted() { - this.getReleases(); - // if (this.$Electron) { this.$Electron.ipcRenderer.on('downloadDone', (event, args) => { if (args.name == this.repoData.name) { @@ -45,7 +44,8 @@ export default { }) } // - this.websocketOpenSubscribe = Store.subscribe('websocketOpen', this.getReleases); + this.getReleases(); + this.websocketOpenSubscribe = Store.subscribe('websocketOpen', this.getReleaseBefore); }, destroyed() { if (this.websocketOpenSubscribe) { @@ -106,6 +106,11 @@ export default { return 0; }, + getReleaseBefore() { + clearTimeout(this.releaseTimeout) + this.releaseTimeout = setTimeout(this.getReleases, 5000) + }, + getReleases() { if (this.status > 0) { return; diff --git a/resources/assets/js/pages/manage.vue b/resources/assets/js/pages/manage.vue index fcb0a362..e25f5c51 100644 --- a/resources/assets/js/pages/manage.vue +++ b/resources/assets/js/pages/manage.vue @@ -231,6 +231,8 @@ export default { dialogMsgSubscribe: null, + refreshTimeout: null, + websocketOpenSubscribe: null, columns: [], @@ -624,7 +626,10 @@ export default { refreshBasic(num) { if (num > 1) { - this.$store.dispatch("refreshBasicData") + clearTimeout(this.refreshTimeout) + this.refreshTimeout = setTimeout(() => { + this.$store.dispatch("refreshBasicData") + }, 5000) } },