feat(aboutDialog): 添加清除缓存按钮

This commit is contained in:
PKC278
2025-12-30 04:01:11 +08:00
parent 2e3314e6c3
commit 1132beea5e
5 changed files with 45 additions and 23 deletions

View File

@@ -14,6 +14,29 @@ const needsUpdate = computed(() => {
return serverVersion.value !== null && serverVersion.value !== currentVersion.value
})
/**
* 清除所有缓存和 Service Worker
*/
export const clearCachesAndServiceWorker = async (): Promise<void> => {
try {
// 1. 清除所有缓存
if ('caches' in window) {
const cacheNames = await caches.keys()
await Promise.all(cacheNames.map(name => caches.delete(name)))
console.log('[VersionChecker] 已清除所有缓存')
}
// 2. 注销 Service Worker
if ('serviceWorker' in navigator) {
const registrations = await navigator.serviceWorker.getRegistrations()
await Promise.all(registrations.map(registration => registration.unregister()))
console.log('[VersionChecker] 已注销所有 Service Worker')
}
} catch (error) {
console.error('[VersionChecker] 清除缓存失败:', error)
}
}
/**
* 版本检查 Composable
*
@@ -25,29 +48,6 @@ const needsUpdate = computed(() => {
export function useVersionChecker() {
const toast = useToast()
/**
* 清除所有缓存和 Service Worker
*/
const clearCachesAndServiceWorker = async (): Promise<void> => {
try {
// 1. 清除所有缓存
if ('caches' in window) {
const cacheNames = await caches.keys()
await Promise.all(cacheNames.map(name => caches.delete(name)))
console.log('[VersionChecker] 已清除所有缓存')
}
// 2. 注销 Service Worker
if ('serviceWorker' in navigator) {
const registrations = await navigator.serviceWorker.getRegistrations()
await Promise.all(registrations.map(registration => registration.unregister()))
console.log('[VersionChecker] 已注销所有 Service Worker')
}
} catch (error) {
console.error('[VersionChecker] 清除缓存失败:', error)
}
}
/**
* 显示版本更新通知(带刷新按钮)
*/