Skip to content
Meeko
Type to search the guides and the API reference. Open it from any page with / or Ctrl K; move with the arrow keys and open a result with Enter.
Get started

Contents

On this page

Not translated yet

This page has not been translated into English yet, so it is shown in Spanish.

PageCache

interfaz Since 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.

ts
import type { PageCache } from "@meekojs/meeko/framework";

Source code src/app/definitions/define-page.ts:249

Declaración #

ts
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
}

Type parameters #

P extends PageSchema | undefined = undefined

Schema de params, o undefined.

S extends PageSchema | undefined = undefined

Schema de search, o undefined.

C = unknown

Tipo del contexto de la petición.

Example #

ts
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 #

propiedad sólo lectura opcional

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 #

propiedad sólo lectura opcional

readonly maxAge?: number

Segundos que el navegador o una CDN pueden servir la copia sin preguntar (max-age). Por defecto, 0.

staleWhileRevalidate #

propiedad sólo lectura opcional

readonly staleWhileRevalidate?: number

Segundos que pueden servir una copia caducada mientras la revalidan (stale-while-revalidate).

memory #

propiedad sólo lectura opcional

readonly memory?: boolean | PageMemoryCache

Guarda 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.

See also #

Was this page helpful?

Add a comment

It is sent when you choose “Yes” or “No”. Only the page, your answer and the comment are stored: no cookies and no personal data.

0 of 2000 characters

Edit on GitHub: packages/meeko/src/app/definitions/define-page.ts