Find a performance recipe
Reduce requests, rendering, transfer, and main-thread work after measuring
Reduce network work
| Problem | Recipe |
|---|---|
| Avoid repeated unchanged reads | Cache reference data |
| Use HTTP validators | Revalidate with ETag |
| Delay, throttle, or cancel requests | Control repeated requests |
| Prefetch before a click | Prefetch a result |
Reduce rendering work
| Problem | Recipe |
|---|---|
| Page a large collection | Paginate on the server |
| Load more near the viewport | Build infinite scrolling |
| React to visibility | Use viewport observation |
| Keep simple reference data | Use caching |
Move specialized work
| Problem | Recipe |
|---|---|
| Receive incremental server changes | Use server-sent events |
| Move CPU work off the main thread | Use a worker |
| Run measured native computation | Use WebAssembly |
| Move slow server work out of a request | Run a background job |
Reduce shipped JavaScript
| Problem | Recipe |
|---|---|
| The measured runtime contains unused features | Build a smaller production runtime |
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.