Server side pagination là gì?

Noun Web
server-side pagination
Phân trang phía máy chủ

Phân trang phía máy chủ (server side pagination) thường xảy ra trước khi trang web được hiển thị (render) cho máy khách (client) thường ở cấp độ cơ sở dữ liệu (database). Phân trang phía máy chủ (server side pagination) là khi máy chủ lưu trữ dữ liệu chỉ trả về một tập hợp con của dữ liệu do máy khách yêu cầu. Phân trang phía máy chủ (server side pagination) giống như đặt một bữa ăn tại một nhà hàng. Nhà hàng chỉ mang đến cho bạn những thứ bạn yêu cầu, nhưng bạn phải đợi họ làm.

Hầu hết các website sẽ lấy dữ liệu từ một số loại cơ sở dữ liệu. Đây có thể là một cơ sở dữ liệu quan hệ (relational database), như SQL Server hoặc MySQL, hoặc nó có thể là một cơ sở dữ liệu NoSQL như MongoDB hoặc Redis. Hoặc nó có thể là một file JSON. Bất kể bạn lưu trữ dữ liệu bằng cách nào, bạn sẽ cần phải tìm hiểu cách cơ sở dữ liệu xử lý việc phân trang (pagination). Mô hình điển hình với hầu hết các máy chủ cơ sở dữ liệu là nói cho máy chủ biết bạn đang bắt đầu từ bản ghi (record) nào và số lượng bản ghi mà bạn đang yêu cầu và logic ORDER BY mà bạn muốn phân trang.

Ví dụ: trong SQL Server, bạn có thể sử dụng kết hợp OFFSET-FETCH để thực hiện điều này:

SELECT expressions 
FROM tables 
[ORDER BY expressions ASC|DESC] 
[OFFSET offset_row_count ROW|ROWS] 
[FETCH FIRST|NEXT fetch_row_count ROW|ROWS ONLY]

Và nếu bạn đang sử dụng cơ sở dữ liệu NoSQL như MongoDB thì sẽ như sau:


 // Page 1
    db.students.find().limit(5)

    // Page 2
    db.students.find().skip(5).limit(5)

    // Page 3
    db.students.find().skip(5).limit(5)
Learning English Everyday