Prefetch bằng Link
Để prefetch dữ liệu cho một trang, bạn có thể thêm propprefetch vào component link của Inertia. Mặc định, Inertia sẽ prefetch dữ liệu khi người dùng hover lên link lâu hơn 75ms. Bạn có thể tùy chỉnh độ trễ hover này bằng tùy chọn prefetch.hoverDelay trong cấu hình mặc định của ứng dụng.
prefetch.cacheFor trong cấu hình mặc định của ứng dụng. Bạn cũng có thể tùy chỉnh thời lượng cache cho từng link bằng cách truyền prop cacheFor vào component Link.
mousedown bằng cách truyền giá trị click vào prop prefetch.
prefetch.
Prefetch bằng lập trình
Bạn có thể prefetch dữ liệu bằng lập trình vớirouter.prefetch. Chữ ký của phương thức này giống router.visit, ngoại trừ đối số thứ ba cho phép bạn chỉ định các tùy chọn prefetch.
Khi không chỉ định tùy chọn cacheFor, giá trị mặc định là 30 giây.
usePrefetch để theo dõi trạng thái prefetch của trang hiện tại. Hook trả về thông tin cho biết trang có đang prefetch hay không, đã được prefetch chưa, lần cập nhật gần nhất là khi nào, cùng phương thức flush để chỉ xóa cache của trang hiện tại.
Cache tags
Cache tag cho phép bạn nhóm dữ liệu prefetch có liên quan và vô hiệu hóa toàn bộ dữ liệu cache mang tag đó khi một sự kiện cụ thể xảy ra. Để gắn tag cho dữ liệu cache, hãy truyền propcacheTags vào component Link.
cacheTags trong đối số thứ ba của router.prefetch.
Vô hiệu hóa cache
Bạn có thể xóa thủ công prefetch cache bằng cách gọirouter.flushAll để xóa toàn bộ dữ liệu cache, hoặc router.flush để xóa cache của một trang cụ thể.
router.flushByCacheTags. Thao tác này xóa mọi response cache chứa bất kỳ tag nào trong số các tag được chỉ định.
Tự động xóa cache
Mặc định, Inertia không tự động xóa prefetch cache khi bạn điều hướng sang trang mới. Dữ liệu cache chỉ bị loại bỏ khi hết hạn theo thời lượng cache. Nếu muốn xóa toàn bộ dữ liệu cache trong mỗi lần điều hướng, bạn có thể thiết lập một event listener.Vô hiệu hóa khi gửi request
Để tự động vô hiệu hóa cache khi gửi request, hãy truyền propinvalidateCacheTags vào component Form. Các tag được chỉ định sẽ bị xóa khi form được gửi thành công.
useForm, bạn có thể đưa invalidateCacheTags vào các tùy chọn visit.
invalidateCacheTags.
Stale-while-revalidate
Mặc định, Inertia sẽ tải một bản dữ liệu mới khi người dùng truy cập trang nếu dữ liệu cache đã cũ hơn thời lượng cache. Bạn có thể tùy chỉnh hành vi này bằng cách truyền một tuple vào propcacheFor.
Giá trị đầu tiên trong mảng là số giây cache được xem là còn mới, còn giá trị thứ hai xác định khoảng thời gian dữ liệu cũ vẫn có thể được phục vụ trước khi bắt buộc phải lấy dữ liệu mới từ server.