From da5e3a0bd35aacc435949d9784710e4be4c35b92 Mon Sep 17 00:00:00 2001 From: Huang Xin Date: Wed, 14 Jan 2026 07:34:00 +0100 Subject: [PATCH] perf(fonts): cache first for font cache (#2945) --- .../app/reader/components/ReaderContent.tsx | 7 +- apps/readest-app/src/styles/fonts.ts | 74 ++++++++++++++++--- apps/readest-app/src/sw.ts | 32 +++++++- 3 files changed, 101 insertions(+), 12 deletions(-) diff --git a/apps/readest-app/src/app/reader/components/ReaderContent.tsx b/apps/readest-app/src/app/reader/components/ReaderContent.tsx index 4bcd5a81..7dbb55e8 100644 --- a/apps/readest-app/src/app/reader/components/ReaderContent.tsx +++ b/apps/readest-app/src/app/reader/components/ReaderContent.tsx @@ -97,8 +97,11 @@ const ReaderContent: React.FC<{ ids?: string; settings: SystemSettings }> = ({ i useEffect(() => { if (bookKeys && bookKeys.length > 0) { const settings = useSettingsStore.getState().settings; - settings.lastOpenBooks = bookKeys.map((key) => key.split('-')[0]!); - saveSettings(envConfig, settings); + const lastOpenBooks = bookKeys.map((key) => key.split('-')[0]!); + if (settings.lastOpenBooks?.toString() !== lastOpenBooks.toString()) { + settings.lastOpenBooks = lastOpenBooks; + saveSettings(envConfig, settings); + } } let unlistenOnCloseWindow: Promise; diff --git a/apps/readest-app/src/styles/fonts.ts b/apps/readest-app/src/styles/fonts.ts index 5ad8954f..20d1e9a1 100644 --- a/apps/readest-app/src/styles/fonts.ts +++ b/apps/readest-app/src/styles/fonts.ts @@ -26,6 +26,31 @@ const cjkGoogleFonts = [ { family: 'Noto Serif JP', weights: '' }, ]; +// Resource hints for faster font loading +const getResourceHints = (includeCJK = false) => { + const basicHints = ` + + + + + +`; + + const cjkHints = ` + + + + + + + + + +`; + + return includeCJK ? basicHints + cjkHints : basicHints; +}; + const getAdditionalBasicFontLinks = () => `