diff --git a/PLAN_OPTIMISATION_PERFORMANCES.md b/PLAN_OPTIMISATION_PERFORMANCES.md index 9e5a1e6..13c92e2 100644 --- a/PLAN_OPTIMISATION_PERFORMANCES.md +++ b/PLAN_OPTIMISATION_PERFORMANCES.md @@ -77,7 +77,7 @@ size: "1000"; // Récupère TOUS les livres d'un coup **Objectif : Passer de 3 couches de cache à 1 seule (ServerCacheService)** -- [ ] **2.1 Désactiver le cache SW pour les données API** +- [x] **2.1 Désactiver le cache SW pour les données API** - Modifier `sw.js` : retirer le cache des routes `/api/komga/*` (sauf images) - Garder uniquement le cache SW pour : images, static, navigation diff --git a/public/sw.js b/public/sw.js index d641d4c..aaa1742 100644 --- a/public/sw.js +++ b/public/sw.js @@ -1,5 +1,6 @@ // StripStream Service Worker - Version 1 -// Architecture: Cache-as-you-go with Stale-While-Revalidate for data +// Architecture: Cache-as-you-go for images and static resources only +// API data caching is handled by ServerCacheService on the server const VERSION = "v1"; const STATIC_CACHE = `stripstream-static-${VERSION}`; @@ -32,10 +33,8 @@ function isNextRSCRequest(request) { return url.searchParams.has("_rsc") || request.headers.get("RSC") === "1"; } -function shouldCacheApiData(url) { - // Exclude dynamic/auth endpoints that should always be fresh - return !url.includes("/api/auth/session") && !url.includes("/api/preferences"); -} +// Removed: shouldCacheApiData - API data is no longer cached by SW +// API data caching is handled by ServerCacheService on the server // ============================================================================ // Cache Strategies @@ -215,9 +214,12 @@ self.addEventListener("fetch", (event) => { return; } - // Route 3: API data → Stale-While-Revalidate (if cacheable) - if (isApiDataRequest(url.href) && shouldCacheApiData(url.href)) { - event.respondWith(staleWhileRevalidateStrategy(request, DATA_CACHE)); + // Route 3: API data → Network only (no SW caching) + // API data caching is handled by ServerCacheService on the server + // This avoids double caching and simplifies cache invalidation + if (isApiDataRequest(url.href)) { + // Let the request pass through to the network + // ServerCacheService will handle caching server-side return; }