PageCache
interfaz Desde 1.7.0
Caché HTTP de una página que se renderiza en el servidor (definePage({ cache })). Sólo se
aplica en producción, a peticiones GET y HEAD sin sesión: una petición con la cookie de
sesión, o una respuesta que pone una cookie, sale como siempre, con no-store.
import type { PageCache } from "@meekojs/meeko/framework";Código fuente src/app/definitions/define-page.ts:249
Declaración #
interface PageCache<P extends PageSchema | undefined = undefined, S extends PageSchema | undefined = undefined, C = unknown> {
readonly etag?: (args: PageCacheContext<P, S, C>) => string | number | undefined | Promise<string | number | undefined>
readonly maxAge?: number
readonly staleWhileRevalidate?: number
readonly memory?: boolean | PageMemoryCache
}Parámetros de tipo #
-
Pextends PageSchema | undefined = undefined Schema de
params, oundefined.-
Sextends PageSchema | undefined = undefined Schema de
search, oundefined.-
C= unknown Tipo del contexto de la petición.
Ejemplo #
import { definePage } from "@meekojs/meeko/framework";
export const route = definePage({
cache: { etag: ({ params }) => docs.versionOf(params.slug), maxAge: 60, memory: true },
load: ({ params }) => docs.get(params.slug),
});Propiedades #
etag
#
readonly etag?: (args: PageCacheContext<P, S, C>) => string | number | undefined | Promise<string | number | undefined>Versión del contenido de la página, que se calcula antes del loader y del render y debe ser
barata (una fecha de modificación, un contador). Meeko la combina con el tema, el build y el
tipo de respuesta (documento o payload) en un ETag débil; si coincide con If-None-Match,
responde 304 sin ejecutar el loader ni el render. Debe cambiar con todo lo que cambia el HTML
salvo el tema. undefined deja esta respuesta sin ETag.
maxAge
#
readonly maxAge?: numberSegundos que el navegador o una CDN pueden servir la copia sin preguntar (max-age). Por defecto, 0.
staleWhileRevalidate
#
readonly staleWhileRevalidate?: numberSegundos que pueden servir una copia caducada mientras la revalidan (stale-while-revalidate).
memory
#
readonly memory?: boolean | PageMemoryCacheGuarda en la memoria del proceso el HTML y el payload renderizados, por URL, tema y ETag, y
los sirve sin loader ni render mientras etag devuelva lo mismo. Necesita etag. No se aplica
a render: "stream", que sólo usa el ETag.
Véase también #
- Caché de páginas SSR Framework full-stack