Cách thực hành tốt nhất để lưu bộ đệm kết quả tìm kiếm phân trang có thứ tự / thuộc tính có thể được thay đổi là gì?
Nói, trong ứng dụng của tôi, ai đó muốn xem 20 chủ đề thảo luận gần đây nhất (trong số 10.000). Một yêu cầu sẽ được gửi đến cơ sở dữ liệu, thông qua servlet
, để lấy 20 bản ghi đầu tiên từ bảng chủ đề thảo luận dưới dạng XML / JSON. Nếu sau đó họ muốn xem 20 kết quả tiếp theo, họ sẽ chuyển sang trang kết quả tiếp theo và điều này sẽ thực hiện một yêu cầu khác để lấy lô tiếp theo (giới hạn và offset = 20, v.v.).
Để giảm tải máy chủ và chờ máy khách, tôi muốn lưu trữ các trang kết quả trước đó. Tuy nhiên, tôi có hai câu hỏi:
- Bảng kết quả được hiển thị trong có thể được sắp xếp theo nhiều hơn một thuộc tính (nghĩa là ngày tạo chủ đề, tác giả chủ đề, ngày đăng cuối cùng). Điều này có nghĩa là một tuyên bố như '20 kết quả đầu tiên' không có ý nghĩa nếu không có ngữ cảnh (nghĩa là chúng ta sắp xếp thứ gì). Làm thế nào để front-end, sau đó, giao tiếp với back-end những gì nó đã được tải? Suy nghĩ đầu tiên của tôi là sử dụng ID cho từng kết quả nhưng gửi lại cho máy chủ theo các yêu cầu tiếp theo (và lọc kết quả dựa trên chúng) sẽ tốn thời gian như gửi mọi thứ lại một cách mù quáng. Tôi có thể làm cái này như thế nào?
- Điều gì xảy ra nếu một thuộc tính của kết quả được trả về trước đó (nghĩa là gần đây nhất sau ngày đăng) đã thay đổi? Sau đó, chúng tôi cần một cách kiểm tra từng kết quả để xem liệu nó có bị sửa đổi phía máy chủ hay không vì nó đã được phân trang. Làm thế nào tôi có thể làm điều này?