Streaming
This page demonstrates streaming in SvelteKit. The page starts rendering immediately with available data, while slower data streams in as it becomes ready.
Watch the data below load progressively at different intervals!
Immediate Data
Load Time:
2025-12-06T02:52:19.201ZMessage:
This loaded immediatelyDelayed Data (3 seconds) - User List
⏳
Loading user data... (3s delay)
Delayed Data (5 seconds) - Product List
⏳
Loading product data... (5s delay)
How It Works
Return promises from your +page.server.ts load function:
export const load: PageServerLoad = async () =>
const immediateData = { ... };
const slowData = new Promise((resolve) => {
setTimeout(() => {
resolve({ ... });
}, 3000);
});
return { immediateData, slowData };
; Use {#await} blocks in your component to handle loading states.
The page renders immediately while promises resolve in the background.