Static Site Generation (SSG) - Incremental Static Regeneration (ISR) - Server-Side Rendering (SSR)

0 0 0

Người đăng: Vũ Nguyễn

Theo Viblo Asia

Giới thiệu

Next.js cung cấp ba phương pháp render chính: Static Site Generation (SSG), Incremental Static Regeneration (ISR) và Server-Side Rendering (SSR). Mỗi phương pháp có ưu nhược điểm riêng, ảnh hưởng đến hiệu suất, SEO và trải nghiệm người dùng.

Trong bài viết này, chúng ta sẽ so sánh chi tiết từng phương pháp để giúp bạn chọn lựa phù hợp cho dự án của mình.

1. Static Site Generation (SSG)

SSG tạo ra các trang tĩnh ngay tại thời điểm build. Khi người dùng truy cập, họ sẽ nhận được phiên bản HTML đã được tạo sẵn mà không cần xử lý thêm trên server.

Ưu điểm:

  • Hiệu suất cao: Trang tải nhanh vì chỉ cần phục vụ file HTML tĩnh.
  • SEO tốt: Nội dung đã có sẵn để các công cụ tìm kiếm lập chỉ mục.
  • Giảm tải server: Không cần xử lý request mỗi lần có người truy cập.

Nhược điểm:

  • Không phù hợp cho nội dung thay đổi thường xuyên.
  • Cần build lại toàn bộ trang nếu có thay đổi dữ liệu.

2. Incremental Static Regeneration (ISR)

ISR là phiên bản nâng cấp của SSG, cho phép cập nhật nội dung tĩnh mà không cần build lại toàn bộ ứng dụng.

Ưu điểm:

  • Hiệu suất cao như SSG.
  • Có thể cập nhật nội dung động theo chu kỳ.
  • Phù hợp cho blog, trang tin tức, danh sách sản phẩm...

Nhược điểm:

  • Cập nhật không tức thời: Có độ trễ giữa lần cập nhật dữ liệu và lần request đầu tiên.
  • Có thể gây lỗi hydration nếu dữ liệu thay đổi giữa server và client.

3. Server-Side Rendering (SSR)

SSR render trang trên server khi có request từ người dùng. Mỗi lần truy cập, server tạo HTML mới dựa trên dữ liệu mới nhất.

Ưu điểm:

  • Dữ liệu luôn cập nhật mới nhất.
  • Phù hợp với nội dung động, ví dụ trang cá nhân hóa hoặc bảng giá cập nhật liên tục.
  • Hỗ trợ SEO tốt hơn so với Client-Side Rendering (CSR).

Nhược điểm:

  • Hiệu suất thấp hơn SSG/ISR vì mỗi request phải render lại trên server.
  • Tăng tải cho server.
  • Tăng thời gian phản hồi so với SSG/ISR.

4. So sánh SSG, ISR và SSR

Phương pháp Tốc độ tải trang Cập nhật nội dung SEO Phù hợp với
SSG 🚀 Rất nhanh ❌ Cần build lại ✅ Tốt Blog, tài liệu, trang giới thiệu
ISR 🚀 Rất nhanh 🔄 Cập nhật theo chu kỳ ✅ Tốt Trang tin tức, danh sách sản phẩm
SSR 🕒 Chậm hơn ✅ Luôn cập nhật ✅ Tốt Trang cá nhân hóa, dữ liệu thay đổi liên tục

5. Khi nào nên chọn SSG, ISR hay SSR?

  • Dùng SSG nếu nội dung ít thay đổi và cần hiệu suất cao.
  • Dùng ISR nếu cần cập nhật nội dung nhưng vẫn muốn giữ hiệu suất của SSG.
  • Dùng SSR nếu dữ liệu thay đổi liên tục và cần hiển thị mới nhất cho mỗi request.

Kết luận

Việc chọn giữa SSG, ISR và SSR phụ thuộc vào yêu cầu của dự án. Nếu ưu tiên hiệu suất và SEO, SSG hoặc ISR là lựa chọn tốt. Nếu cần nội dung động cập nhật liên tục, SSR sẽ phù hợp hơn.

Bình luận

Bài viết tương tự

- vừa được xem lúc

Viết một chiếc app quản lý Hạn sử dụng của thực phẩm

Mở đầu. Tôi là 1 kỹ sư công nghệ thông tin mới ra trường. Trong thời gian học Đại học, từ năm 1 tới năm 4, tôi đi làm thêm tại TSUTAYA (chuỗi cửa hàng bán sách, video...v.v nổi tiếng bên Nhật). Về chiếc App tôi đã phát triển. App tôi phát triển là Web App giúp quản lý hạn sử dụng của đồ ăn.

0 0 56

- vừa được xem lúc

Routing trong Next.js

Trước đó bạn có thể đang tò mò về Next.js, vào đây luôn bạn ơi. (go). .

1 0 56

- vừa được xem lúc

Cài đặt chuyển đổi ngôn ngữ trong một project NextJS

Ở phiên bản Nextjs Version 10 mới đây, việc sử dụng i18n đã trở nên dễ dàng hơn qua tính nâng cao là Internationalized Routing. Cài đặt cấu hình cơ bản. Tại file next.config.

0 0 76

- vừa được xem lúc

Cấu hình eslint airbnb, prettier cho dự next.js sử dụng typescript

Chào mọi, mình đã quay lại đây. Hôm nay mình sẽ đem đến một chủ đề linter cụ thể cấu hình eslint cho dự án next.

0 0 203

- vừa được xem lúc

Handling custom page navigation on Next.js

Last month we discussed about different kind of routing on Next.js. Here's a short example of creating a component that moves the user to next page. import { useRouter } from 'next/router'.

0 0 88

- vừa được xem lúc

Next Image một feature, một nâng cấp tuyệt vời version nextjs 10

NextJS đã cho ra mắt version 10 cách đây 2 tháng với hơn 20 fearture nâng cấp đáng giá. Chúng ta có thể kể ra những features nổi bật như. . Next/Image: với khẳ năng render image cho các kích thước màn hình tương ứng.

0 0 66