EdgeOne Pages Next.js Starter - Streaming
Gradually render page content to improve user experience and perceived performance.
Suitable for data-intensive pages and complex content, advantages are faster first screen display and progressive content loading, supporting large pages and complex dashboards.
🚀 True streaming rendering: Page content loads progressively, fast components display immediately, slow components load one by one!
Streaming: Streaming Rendering Demo
Fast Component (Load instantly)
Load Time: 2025-09-09T19:34:01.255Z
Fast Data: 35
Status: Loaded instantly!
Loading slow component 1 (5s)...
Loading...
Loading slow component 2 (8s)...
Loading...
Streaming Rendering Features
• Progressive Loading: Page content displays progressively by component
• Faster First Screen: Fast components display immediately without waiting for slow components
• Better User Experience: Users can see partial content immediately
• Parallel Processing: Multiple async components can load in parallel
Refresh the page to see the true streaming rendering effect - content appears progressively!
// app/streaming/page.tsx // Force dynamic rendering - disable static optimization export const dynamic = 'force-dynamic' export const revalidate = 0 import { Suspense } from 'react' export default function StreamingPage() { return ( <div> <h1>Streaming Rendering Demo</h1> {/* Fast component displays immediately */} <FastComponent /> {/* Slow components use Suspense for streaming loading */} <Suspense fallback={<LoadingSpinner message="Loading component 1..." />}> <SlowDataComponent /> </Suspense> <Suspense fallback={<LoadingSpinner message="Loading component 2..." />}> <AnotherSlowComponent /> </Suspense> </div> ) } // Async server component async function SlowDataComponent() { // Simulate data fetching delay await new Promise(resolve => setTimeout(resolve, 2000)) const data = await fetch('https://api.example.com/slow-data') return <div>Streaming data: {data.value}</div> }