- PPR giải quyết triệt để sự đánh đổi giữa Static TTFB và Dynamic Data.
- Tối ưu hóa Core Web Vitals (FCP dưới 200ms, LCP dưới 500ms).
- Dễ dàng triển khai theo mô hình gia tăng (incremental adoption) trong Next.js 15.
1. Bối Cảnh & Sự Ra Đời Của Partial Prerendering (PPR)
Trong phát triển web hiện đại, các kỹ sư luôn phải đối mặt với bài toán đánh đổi giữa Static Site Generation (SSG) và Server-Side Rendering (SSR). SSG mang lại tốc độ tải trang tức thì (TTFB dưới 30ms) nhờ lưu trữ trên CDN, nhưng không thể hiển thị dữ liệu thời gian thực cho từng người dùng (như giỏ hàng, thông tin cá nhân). Ngược lại, SSR giải quyết được dữ liệu động nhưng bắt buộc toàn bộ trang web phải chờ server xử lý xong mới trả về HTML.
Next.js 15 cùng React 19 giải quyết dứt điểm nghịch lý này bằng kiến trúc Partial Prerendering (PPR): Render trước phần khung tĩnh (Static Shell) tại build-time và stream song song các thành phần động (Dynamic Holes) qua giao thức HTTP Streaming.
2. Cơ Chế Tách Shell Tĩnh & Streaming Lỗ Động (Dynamic Hole)
Khi kích hoạt PPR, Next.js phân tích cây component và tự động phân định:
- Static Shell: Header, Footer, Sidebar, Layout và hình ảnh thương hiệu được biên dịch sẵn thành static HTML lưu tại Edge CDN.
- Dynamic Holes: Các component được bao bọc bởi
<Suspense>chứa các lệnh gọi dữ liệu bất đồng bộ (cookies(),headers(), database query) sẽ được stream xuống máy khách ngay khi tính toán xong.
3. Mã Nguồn Cấu Hình Next.js 15 & React 19 Suspense
Dưới đây là ví dụ cấu hình trang Dashboard thương mại điện tử chuẩn PPR trong Next.js 15 App Router:
Cấu hình kích hoạt trong file next.config.ts:
4. Bảng Đo Lường Hiệu Năng: SSG vs SSR vs PPR
Dưới đây là kết quả benchmark thực tế đo lường trên mạng 4G với độ trễ RTT 60ms:
5. Khuyến Nghị Kiến Trúc Khi Áp Dụng PPR Cho Doanh Nghiệp
- Định vị ranh giới Suspense chuẩn xác: Không nên bọc
<Suspense>ở tầng quá cao ngoài root layout, hãy đặt càng gần lá component động càng tốt để tối đa hóa diện tích Static Shell. - Kiểm soát Cache Invalidation: Tận dụng
revalidateTagvàunstable_cacheđể tái sử dụng kết quả truy vấn đắt đỏ giữa các phiên làm việc của người dùng.
- [1] Next.js 15 Architecture Roadmap - Vercelnextjs.org
- [2] React 19 Server Functions Specificationreact.dev
PPR có hoạt động tốt trên các nền tảng serverless không?
Có. PPR được thiết kế tối ưu hóa đặc biệt cho Edge Network và V8 isolates runtime, giảm chi phí tính toán máy chủ tới hơn 70%.

Lead Full Stack & System Architect
Full Stack Developer với hơn 3 năm kinh nghiệm thiết kế kiến trúc và phát triển hệ thống web quy mô. Đã hoàn thành hơn 120+ dự án bàn giao cho doanh nghiệp, đối tác và khách hàng cá nhân.