-
Notifications
You must be signed in to change notification settings - Fork 27k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
seed prefetch cache with initial page #61535
Conversation
This stack of pull requests is managed by Graphite. Learn more about stacking. |
46e3a2e
to
0d06b98
Compare
Failing test suitesCommit: 8c37ac6
Expand output● socket-io › should support socket.io without falling back to polling
Read more about building and testing Next.js in contributing.md. |
Stats from current PRDefault Build (Increase detected
|
vercel/next.js canary | vercel/next.js 02-01-seed_prefetch_cache_with_initial_page | Change | |
---|---|---|---|
buildDuration | 12.1s | 12.1s | N/A |
buildDurationCached | 6.6s | 5.3s | N/A |
nodeModulesSize | 196 MB | 196 MB | |
nextStartRea..uration (ms) | 434ms | 406ms | N/A |
Client Bundles (main, webpack) Overall increase ⚠️
vercel/next.js canary | vercel/next.js 02-01-seed_prefetch_cache_with_initial_page | Change | |
---|---|---|---|
3f784ff6-HASH.js gzip | 53.5 kB | 53.5 kB | N/A |
423.HASH.js gzip | 185 B | 181 B | N/A |
68-HASH.js gzip | 29.9 kB | 30 kB | |
framework-HASH.js gzip | 45.2 kB | 45.2 kB | ✓ |
main-app-HASH.js gzip | 237 B | 239 B | N/A |
main-HASH.js gzip | 31.9 kB | 31.9 kB | N/A |
webpack-HASH.js gzip | 1.7 kB | 1.7 kB | ✓ |
Overall change | 76.8 kB | 76.9 kB |
Legacy Client Bundles (polyfills)
vercel/next.js canary | vercel/next.js 02-01-seed_prefetch_cache_with_initial_page | Change | |
---|---|---|---|
polyfills-HASH.js gzip | 31 kB | 31 kB | ✓ |
Overall change | 31 kB | 31 kB | ✓ |
Client Pages
vercel/next.js canary | vercel/next.js 02-01-seed_prefetch_cache_with_initial_page | Change | |
---|---|---|---|
_app-HASH.js gzip | 194 B | 195 B | N/A |
_error-HASH.js gzip | 182 B | 181 B | N/A |
amp-HASH.js gzip | 502 B | 501 B | N/A |
css-HASH.js gzip | 320 B | 322 B | N/A |
dynamic-HASH.js gzip | 2.5 kB | 2.5 kB | N/A |
edge-ssr-HASH.js gzip | 255 B | 256 B | N/A |
head-HASH.js gzip | 350 B | 349 B | N/A |
hooks-HASH.js gzip | 368 B | 369 B | N/A |
image-HASH.js gzip | 4.2 kB | 4.2 kB | N/A |
index-HASH.js gzip | 257 B | 256 B | N/A |
link-HASH.js gzip | 2.67 kB | 2.67 kB | N/A |
routerDirect..HASH.js gzip | 310 B | 311 B | N/A |
script-HASH.js gzip | 384 B | 383 B | N/A |
withRouter-HASH.js gzip | 306 B | 308 B | N/A |
1afbb74e6ecf..834.css gzip | 106 B | 106 B | ✓ |
Overall change | 106 B | 106 B | ✓ |
Client Build Manifests
vercel/next.js canary | vercel/next.js 02-01-seed_prefetch_cache_with_initial_page | Change | |
---|---|---|---|
_buildManifest.js gzip | 483 B | 484 B | N/A |
Overall change | 0 B | 0 B | ✓ |
Rendered Page Sizes
vercel/next.js canary | vercel/next.js 02-01-seed_prefetch_cache_with_initial_page | Change | |
---|---|---|---|
index.html gzip | 527 B | 527 B | ✓ |
link.html gzip | 541 B | 539 B | N/A |
withRouter.html gzip | 523 B | 522 B | N/A |
Overall change | 527 B | 527 B | ✓ |
Edge SSR bundle Size Overall increase ⚠️
vercel/next.js canary | vercel/next.js 02-01-seed_prefetch_cache_with_initial_page | Change | |
---|---|---|---|
edge-ssr.js gzip | 94.4 kB | 94.4 kB | N/A |
page.js gzip | 150 kB | 150 kB | |
Overall change | 150 kB | 150 kB |
Middleware size
vercel/next.js canary | vercel/next.js 02-01-seed_prefetch_cache_with_initial_page | Change | |
---|---|---|---|
middleware-b..fest.js gzip | 621 B | 623 B | N/A |
middleware-r..fest.js gzip | 151 B | 149 B | N/A |
middleware.js gzip | 47.4 kB | 47.4 kB | N/A |
edge-runtime..pack.js gzip | 1.94 kB | 1.94 kB | ✓ |
Overall change | 1.94 kB | 1.94 kB | ✓ |
Next Runtimes
vercel/next.js canary | vercel/next.js 02-01-seed_prefetch_cache_with_initial_page | Change | |
---|---|---|---|
app-page-exp...dev.js gzip | 166 kB | 166 kB | N/A |
app-page-exp..prod.js gzip | 95.4 kB | 95.5 kB | N/A |
app-page-tur..prod.js gzip | 97.2 kB | 97.2 kB | N/A |
app-page-tur..prod.js gzip | 91.6 kB | 91.7 kB | N/A |
app-page.run...dev.js gzip | 136 kB | 136 kB | N/A |
app-page.run..prod.js gzip | 90.2 kB | 90.2 kB | N/A |
app-route-ex...dev.js gzip | 22 kB | 22 kB | ✓ |
app-route-ex..prod.js gzip | 14.9 kB | 14.9 kB | ✓ |
app-route-tu..prod.js gzip | 14.9 kB | 14.9 kB | ✓ |
app-route-tu..prod.js gzip | 14.6 kB | 14.6 kB | ✓ |
app-route.ru...dev.js gzip | 21.7 kB | 21.7 kB | ✓ |
app-route.ru..prod.js gzip | 14.6 kB | 14.6 kB | ✓ |
pages-api-tu..prod.js gzip | 9.43 kB | 9.43 kB | ✓ |
pages-api.ru...dev.js gzip | 9.7 kB | 9.7 kB | ✓ |
pages-api.ru..prod.js gzip | 9.43 kB | 9.43 kB | ✓ |
pages-turbo...prod.js gzip | 22.1 kB | 22.1 kB | ✓ |
pages.runtim...dev.js gzip | 22.7 kB | 22.7 kB | ✓ |
pages.runtim..prod.js gzip | 22.1 kB | 22.1 kB | ✓ |
server.runti..prod.js gzip | 49.9 kB | 49.9 kB | ✓ |
Overall change | 248 kB | 248 kB | ✓ |
Diff details
Diff for page.js
Diff too large to display
Diff for 68-HASH.js
Diff too large to display
Diff for app-page-exp..ntime.dev.js
Diff too large to display
Diff for app-page-exp..time.prod.js
Diff too large to display
Diff for app-page-tur..time.prod.js
Diff too large to display
Diff for app-page-tur..time.prod.js
Diff too large to display
Diff for app-page.runtime.dev.js
Diff too large to display
Diff for app-page.runtime.prod.js
Diff too large to display
8f65b4e
to
bac2356
Compare
0d06b98
to
f2eb3ba
Compare
134ade9
to
e08e738
Compare
f2eb3ba
to
86c1971
Compare
e08e738
to
0fb8a34
Compare
508f8a5
to
bbe2421
Compare
541db60
to
026b0c5
Compare
2ed5a66
to
67494f0
Compare
96636df
to
95339b9
Compare
67494f0
to
4936d42
Compare
95339b9
to
8544ddb
Compare
4936d42
to
e2c7fe9
Compare
17c9a20
to
ec7f968
Compare
cd928f9
to
cd9837c
Compare
ec7f968
to
407fa0e
Compare
778a4bb
to
97b0a56
Compare
654953d
to
1f62f69
Compare
packages/next/src/client/components/router-reducer/prefetch-cache-utils.ts
Outdated
Show resolved
Hide resolved
1f62f69
to
8c37ac6
Compare
What
When navigating back to a page that you had already loaded, it currently results in a prefetch cache miss and will re-trigger any data fetching/loading despite it being available.
Why
When creating the initial router state, the prefetch cache is initialized to an empty map.
How
This uses the
initialTree
passed from the server to seed the cache for that route with flight data.Closes NEXT-2001