Conversation
👷 Deploy Preview for astro-docs-2 processing.
|
Lunaria Status Overview🌕 This pull request will trigger status changes. Learn moreBy default, every PR changing files present in the Lunaria configuration's You can change this by adding one of the keywords present in the Tracked Files
Warnings reference
|
sarah11918
left a comment
There was a problem hiding this comment.
Wow, @ascorbic ! Only a very few small comments from me (most of them just adding specific link anchors that were probably too annoying for you to hunt down in the moment).
I think this one just needs to go straight to @yanthomasdev , for whom I've left all the commas! 🎉
src/content/docs/en/reference/experimental-flags/route-caching.mdx
Outdated
Show resolved
Hide resolved
src/content/docs/en/reference/experimental-flags/route-caching.mdx
Outdated
Show resolved
Hide resolved
src/content/docs/en/reference/experimental-flags/route-caching.mdx
Outdated
Show resolved
Hide resolved
|
|
||
| Enables a platform-agnostic API for caching responses from [on-demand rendered](/en/guides/on-demand-rendering/) pages and endpoints. Cache directives set in your routes are translated into the appropriate headers or runtime behavior depending on your configured cache provider. | ||
|
|
||
| Route caching builds on standard [HTTP caching semantics](https://developer.mozilla.org/en-US/docs/Web/HTTP/Caching) including `max-age` and [`stale-while-revalidate`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cache-Control#stale-while-revalidate), with support for tag-based and path-based invalidation, config-level route rules, and pluggable cache providers that adapters can set automatically. |
There was a problem hiding this comment.
I'm wondering whether somewhere around here in the intro, it's worth comparing this feature to ISR? (Astro's solution to X, sometimes known as ISR; Astro's answer to what's normally solved with ISR; While other frameworks attempt to do X with ISR, Astro's route caching accomplishes X+...)
Totally not necessary of course, just thinking how we could have an SEO hit for Astro + ISR and also be able to point people somewhere when they say "what about ISR?"
src/content/docs/en/reference/experimental-flags/route-caching.mdx
Outdated
Show resolved
Hide resolved
src/content/docs/en/reference/experimental-flags/route-caching.mdx
Outdated
Show resolved
Hide resolved
src/content/docs/en/reference/experimental-flags/route-caching.mdx
Outdated
Show resolved
Hide resolved
src/content/docs/en/reference/experimental-flags/route-caching.mdx
Outdated
Show resolved
Hide resolved
ArmandPhilippot
left a comment
There was a problem hiding this comment.
The feature looks great! I left a few suggestions, some are nitpickings and others are for consistency with the rest of the docs (e.g. use of tables which don't look very good on small devices).
src/content/docs/en/reference/experimental-flags/route-caching.mdx
Outdated
Show resolved
Hide resolved
src/content/docs/en/reference/experimental-flags/route-caching.mdx
Outdated
Show resolved
Hide resolved
src/content/docs/en/reference/experimental-flags/route-caching.mdx
Outdated
Show resolved
Hide resolved
src/content/docs/en/reference/experimental-flags/route-caching.mdx
Outdated
Show resolved
Hide resolved
src/content/docs/en/reference/experimental-flags/route-caching.mdx
Outdated
Show resolved
Hide resolved
|
|
||
| </p> | ||
|
|
||
| Optional. Translates cache options into response headers. Called after the response is rendered but before it is sent to the client. These headers are stripped from the final response. |
There was a problem hiding this comment.
I'll note we usually don't start the description with "Optional"/"Required"... but maybe this is something to consider for the API block (alongside "Type", "Default"...).
src/content/docs/en/reference/experimental-flags/route-caching.mdx
Outdated
Show resolved
Hide resolved
| | Property | Type | Description | | ||
| | -------- | -------------------- | --------------------------------------------------------------------- | | ||
| | `path` | `string` | Exact path to invalidate. No glob or wildcard support. | | ||
| | `tags` | `string \| string[]` | Tag or tags to invalidate. All entries with matching tags are purged. | |
There was a problem hiding this comment.
Same as above, we usually don't use tables and this is not the most usable on small devices.
| | `swr` | `number` | Stale-while-revalidate window in seconds. Stale content is served while a fresh response is generated in the background. | | ||
| | `tags` | `string[]` | Cache tags for targeted invalidation. Tags accumulate across multiple `set()` calls. | | ||
| | `lastModified` | `Date` | When multiple `set()` calls provide `lastModified`, the most recent date wins. | | ||
| | `etag` | `string` | Entity tag for conditional requests. | |
There was a problem hiding this comment.
Oh, it seems I forgot to add this comment... 🤦🏽 (with the screenshot my comment about tables/small devices will make more sense I guess)
I'm a bit confused by this. We usually don't use tables in docs because they look a bit awful on small devices. We usually use headings for each. This how it looks using Firefox iPhone 11 preview:
Co-authored-by: Yan <61414485+yanthomasdev@users.noreply.github.com> Co-authored-by: Armand Philippot <git@armand.philippot.eu> Co-authored-by: Sarah Rainsberger <5098874+sarah11918@users.noreply.github.com>
src/content/docs/en/reference/experimental-flags/route-caching.mdx
Outdated
Show resolved
Hide resolved
….mdx Co-authored-by: Armand Philippot <git@armand.philippot.eu>

Description (required)
Adds docs for the experimental route caching flag. See the code PR: withastro/astro#15579 and the RFC: withastro/roadmap#1245 for more details
Also updates the live collections docs to refer to route caching in the sections about cache hints.
Related issues & labels (optional)