Cache
SessionStorageCacheStrategy
Strategia di cache basata su sessionStorage. ~5-10MB, persistente solo durante la sessione del tab. Isolata per tab del browser.
Cosa fa
SessionStorageCacheStrategy persiste le entry in sessionStorage con un prefisso configurabile. Estende WebStorageCacheStrategy (logica condivisa con LocalStorage).
Caratteristiche:
- Capacita ~5-10MB (limite browser per origin)
- Persistenza session-only — eliminata alla chiusura del tab
- Isolamento per tab — ogni tab ha il proprio storage separato
- API sincrona
Quando usarla
- Cache che si invalida al refresh tab — dati relativi alla sessione di lavoro corrente
- Wizard multi-step — dati intermedi che non devono sopravvivere alla chiusura del tab
- Cache utente sensibili a basso impatto — preferibile a
localStorageper non lasciare residui dopo chiusura - Fallback intermedio tra IndexedDB e LocalStorage nella catena di
createWithFallback()
E la prima scelta di fallback dopo IndexedDB in
CacheStrategyFactory.createWithFallback(): minimizza i residui cross-sessione su user agent dove IndexedDB non e disponibile.Costruttore
class SessionStorageCacheStrategy extends WebStorageCacheStrategy {
constructor(prefix?: string)
}
| Parametro | Tipo | Default | Descrizione |
|---|---|---|---|
prefix | string | 'pzeta_session_cache_' | Prefisso per le chiavi in sessionStorage |
Esempio
import { SessionStorageCacheStrategy, CacheService } from '@pzeta/postgrest'
const strategy = new SessionStorageCacheStrategy()
const cache = CacheService.getInstance(httpClient, strategy)
// Le entry esistono solo finche il tab e aperto
await cache.fetchWithCache(
{ url: '/temp-data', method: 'GET' },
'temp-data',
600_000
)
Comportamento
Vedi WebStorageCacheStrategy per i dettagli condivisi:
setItem/getItem— serializzazione JSON con TTL- Gestione
QuotaExceededErrorcon cleanup automatico supportsTTL()—trueisPersistent()—false(a differenza di LocalStorage)
Differenze rispetto a LocalStorage
| Aspetto | LocalStorage | SessionStorage |
|---|---|---|
| Persistenza chiusura tab | Si | No |
| Condivisione tra tab | Si | No (isolato) |
isPersistent() | true | false |
| Prefix default | pzeta_cache_ | pzeta_session_cache_ |
Vedi anche
CacheStrategyFactory—createSessionStorageStrategy(config?)WebStorageCacheStrategy— classe base condivisaLocalStorageCacheStrategy— variante permanenteCacheService
NoCacheStrategy
Strategia no-op che disabilita la cache. Tutte le letture sono miss, tutte le scritture vengono ignorate. Utile per testing e debugging.
WebStorageCacheStrategy
Classe base astratta condivisa da LocalStorageCacheStrategy e SessionStorageCacheStrategy. Implementa la logica comune per Web Storage API con prefix, TTL e quota handling.