rsnext/examples/ssr-caching
Steven 4466ba436b
chore(examples): use default prettier for examples/templates (#60530)
## Description
This PR ensures that the default prettier config is used for examples
and templates.

This config is compatible with `prettier@3` as well (upgrading prettier
is bigger change that can be a future PR).

## Changes
- Updated `.prettierrc.json` in root with `"trailingComma": "es5"` (will
be needed upgrading to prettier@3)
- Added `examples/.prettierrc.json` with default config (this will
change every example)
- Added `packages/create-next-app/templates/.prettierrc.json` with
default config (this will change every template)

## Related

- Fixes #54402
- Closes #54409
2024-01-11 16:01:44 -07:00
..
pages chore(examples): use default prettier for examples/templates (#60530) 2024-01-11 16:01:44 -07:00
.gitignore Add .yarn/install-state.gz to .gitignore (#56637) 2023-10-18 16:34:48 +00:00
next-env.d.ts Remove incorrect entries for pnpm debug log (#47241) 2023-03-26 22:26:05 -07:00
package.json Convert many examples to TypeScript (#41825) 2022-10-26 20:28:55 +00:00
README.md Updates Mozilla links to not include language preference (#55326) 2023-09-13 11:06:29 -05:00
tsconfig.json Convert many examples to TypeScript (#41825) 2022-10-26 20:28:55 +00:00

Server-Side Rendering Caching Headers

This example uses stale-while-revalidate cache-control headers in combination with getServerSideProps for server-rendering.

pages/index.tsx uses getServerSideProps to forward the request header to the React component, as well as setting a response header. This cache-control header uses stale-while-revalidate to cache the server response.

pages/index.tsx is considered fresh for ten seconds (s-maxage=10). If a request is repeated within the next 10 seconds, the previously cached value will still be fresh. If the request is repeated before 59 seconds, the cached value will be stale but still render (stale-while-revalidate=59).

In the background, a revalidation request will be made to populate the cache with a fresh value. If you refresh the page, you will see the new value shown.

Deploy your own

Deploy the example using Vercel or preview live with StackBlitz

Deploy with Vercel

How to use

Execute create-next-app with npm, Yarn, or pnpm to bootstrap the example:

npx create-next-app --example ssr-caching ssr-caching-app
yarn create next-app --example ssr-caching ssr-caching-app
pnpm create next-app --example ssr-caching ssr-caching-app

Deploy it to the cloud with Vercel (Documentation).