Middle
How did you implement pagination for data unloading?
sobes.tech AI
Answer from AI
Page-wise data unloading (pagination) is implemented to limit the amount of data transmitted in a single request, which is important for devices with limited resources.
Typically, one of the following approaches is used:
-
Offset and limit:
- The client sends the page number and page size.
- The server returns data considering the offset:
offset = (page - 1) * page_size.
-
Cursor-based pagination:
- Instead of a page number, a unique identifier of the last received element is used.
- It allows more efficient handling of dynamic data.
Example implementation on an embedded device:
#define PAGE_SIZE 10
// Function to get a page of data
void get_page(int page_number, DataType* buffer) {
int offset = (page_number - 1) * PAGE_SIZE;
for (int i = 0; i < PAGE_SIZE; i++) {
buffer[i] = read_data(offset + i); // reading data from memory or sensors
}
}
This approach allows the client to sequentially request data in parts, reducing the load on the network and device memory.