From 47c0d4bd50da9782b94d6c2534bdf6810a63d799 Mon Sep 17 00:00:00 2001 From: btea <2356281422@qq.com> Date: Sat, 17 Jun 2023 21:48:28 +0800 Subject: [PATCH] feat(client): add debounce on page reload --- packages/vite/src/client/client.ts | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/packages/vite/src/client/client.ts b/packages/vite/src/client/client.ts index 0abf5bccef0944..d0d989ea120564 100644 --- a/packages/vite/src/client/client.ts +++ b/packages/vite/src/client/client.ts @@ -127,6 +127,20 @@ function cleanUrl(pathname: string): string { let isFirstUpdate = true const outdatedLinkTags = new WeakSet() +const debounceReload = (time: number) => { + let timer: ReturnType | null + return () => { + if (timer) { + clearTimeout(timer) + timer = null + } + timer = setTimeout(() => { + location.reload() + }, time) + } +} +const pageReload = debounceReload(50) + async function handleMessage(payload: HMRPayload) { switch (payload.type) { case 'connected': @@ -219,11 +233,11 @@ async function handleMessage(payload: HMRPayload) { payload.path === '/index.html' || (pagePath.endsWith('/') && pagePath + 'index.html' === payloadPath) ) { - location.reload() + pageReload() } return } else { - location.reload() + pageReload() } break case 'prune':