feat: 添加清除 Service Worker 缓存功能,优化缓存管理逻辑

This commit is contained in:
2025-12-21 02:53:02 +07:00
parent 7fcb2555a3
commit fcaf7db923
3 changed files with 27 additions and 13 deletions

View File

@@ -75,6 +75,14 @@ export function useCacheSize() {
// 清除 sessionStorage // 清除 sessionStorage
sessionStorage.clear(); sessionStorage.clear();
// 清除 Service Worker 缓存
if ("serviceWorker" in navigator) {
const registrations = await navigator.serviceWorker.getRegistrations();
for (const registration of registrations) {
await registration.unregister();
}
}
// 清除 Cache API 缓存 // 清除 Cache API 缓存
if ("caches" in window) { if ("caches" in window) {
const cacheNames = await caches.keys(); const cacheNames = await caches.keys();

View File

@@ -2,24 +2,24 @@ import { IonicVue } from "@ionic/vue";
import { createPinia } from "pinia"; import { createPinia } from "pinia";
import { createApp } from "vue"; import { createApp } from "vue";
import App from "./App.vue"; import App from "./App.vue";
import { authClient } from "./auth";
import { i18n } from "./locales"; import { i18n } from "./locales";
import { router } from "./router"; import { router } from "./router";
/* Core CSS required for Ionic components to work properly */ /* Core CSS required for Ionic components to work properly */
import "@ionic/vue/css/core.css"; import "@ionic/vue/css/core.css";
/* Basic CSS for apps built with Ionic */ /* Basic CSS for apps built with Ionic */
import "@ionic/vue/css/normalize.css"; import "@ionic/vue/css/normalize.css";
import "@ionic/vue/css/structure.css"; import "@ionic/vue/css/structure.css";
import "@ionic/vue/css/typography.css";
import "@ionic/vue/css/typography.css";
/* Optional CSS utils that can be commented out */ /* Optional CSS utils that can be commented out */
import "@ionic/vue/css/padding.css"; import "@ionic/vue/css/padding.css";
import "@ionic/vue/css/float-elements.css"; import "@ionic/vue/css/float-elements.css";
import "@ionic/vue/css/text-alignment.css"; import "@ionic/vue/css/text-alignment.css";
import "@ionic/vue/css/text-transformation.css"; import "@ionic/vue/css/text-transformation.css";
import "@ionic/vue/css/flex-utils.css"; import "@ionic/vue/css/flex-utils.css";
import "@ionic/vue/css/display.css";
/** /**
* Ionic Dark Mode * Ionic Dark Mode
@@ -28,10 +28,11 @@ import "@ionic/vue/css/display.css";
* https://ionicframework.com/docs/theming/dark-mode * https://ionicframework.com/docs/theming/dark-mode
*/ */
// import "@ionic/vue/css/palettes/dark.always.css"; import "@ionic/vue/css/display.css";
import "@ionic/vue/css/palettes/dark.class.css";
// import "@ionic/vue/css/palettes/dark.system.css"; // import "@ionic/vue/css/palettes/dark.system.css";
// import "@ionic/vue/css/palettes/dark.always.css";
import "@ionic/vue/css/palettes/dark.class.css";
/* Theme variables */ /* Theme variables */
import "./theme/index.css"; import "./theme/index.css";
import "./theme/variables.css"; import "./theme/variables.css";
@@ -39,14 +40,18 @@ import "./theme/ionic.css";
useTheme(); useTheme();
const pinia = createPinia(); authClient.getSession().then((session) => {
const pinia = createPinia();
const userStore = useUserStore(pinia);
userStore.setToken(session.data?.session.token || "");
const app = createApp(App) const app = createApp(App)
.use(IonicVue) .use(IonicVue)
.use(pinia) .use(pinia)
.use(router) .use(router)
.use(i18n); .use(i18n);
router.isReady().then(() => { router.isReady().then(() => {
app.mount("#app"); app.mount("#app");
});
}); });

View File

@@ -1,5 +1,6 @@
import type { UserData, UserProfileData } from "@/api/types"; import type { UserData, UserProfileData } from "@/api/types";
import { client, safeClient } from "@/api"; import { client, safeClient } from "@/api";
import { authClient } from "@/auth";
interface State { interface State {
user: UserData | null; user: UserData | null;