Next.js 9.5
Bài tóm tắt Vercel 2020 2. Tăng trưởng Độ khó: Trung bình
Vercel · 2020 · 2. Tăng trưởng · Độ khó: Trung bình — bài gốc
Vercel vừa làm framework Next.js vừa bán nền tảng chạy nó; nhận định về sản phẩm của họ trong trang này đều là "theo Vercel". Thông báo phát hành (release note) nhiều tính năng; trang này chỉ giữ hai quyết định về cache.
Thay đổi chính
- ISR ổn định: trang tĩnh được dựng lại ở nền khi có traffic, theo kiểu stale-while-revalidate: người dùng luôn nhận bản tĩnh đang có, bản mới chỉ thay vào sau khi dựng xong. Cùng với
fallback: true(thêm trang tĩnh lúc chạy), theo Vercel Next.js tạo được số trang tĩnh không giới hạn mà vẫn có dữ liệu động. - Bundle băm theo nội dung: trước 9.5, URL của script chứa build ID chung nên mỗi lần build lại là mất toàn bộ cache trình duyệt và edge. Nay mỗi bundle trang có hash của chính nó, trang không đổi giữa hai lần deploy thì giữ cache, gửi kèm
Cache-Control: public,max-age=31536000,immutable. - Các phần khác:
basePath,rewrites/redirects/headerstrongnext.config.js(rewrite về app cũ phục vụ chuyển dần), webpack 5 beta, sửa lỗi file watching trên macOS ở thư viện chokidar.
Bài học cho SWE
- Tên file theo nội dung (thay vì theo build) là cách rẻ nhất để vô hiệu cache đúng phần đã đổi.
- Stale-while-revalidate đổi độ tươi lấy việc không bao giờ chặn người đọc; cần chấp nhận một khoảng dữ liệu cũ.
Liên quan
#Next.js#Incremental Static Regeneration#ISR#stale-while-revalidate#content hash#Cache-Control immutable#basePath#rewrites#webpack 5
Được nhắc tới trong
Chủ đề (2)
Công ty (1)
Bài tóm tắt (1)