Pagination server side

Efficiently handle and display huge datasets by implementing server-side pagination, reducing load times and improving performance.

Example

Id
Name
Category
Price Retail
Status
1
Luxurious Bamboo Tuna
Clothing
266.92
discontinued
2
Fantastic Bronze Table
Sports
124.8
low-stock
3
Handcrafted Concrete Cheese
Home & Garden
480.58
in-stock
4
Ergonomic Steel Cheese
Clothing
127.56
low-stock
5
Sleek Concrete Hat
Sports
77.61
in-stock
6
Modern Gold Salad
Home & Garden
321.32
in-stock
7
Gorgeous Aluminum Cheese
Clothing
41.82
low-stock
8
Handmade Plastic Shirt
Sports
487.32
low-stock
9
Ergonomic Wooden Keyboard
Sports
485.29
in-stock
10
Frozen Bamboo Soap
Electronics
165.47
in-stock
Per page:
Page 1 of 100
Showing 1 to 10 of 1000 rows
{
  "page": 1,
  "pageSize": 10,
  "pageSizes": [
    10,
    20,
    50,
    100
  ],
  "pageCount": 100
}

+Page.ts example

import { inventoryData } from "$lib/data/data-storage.svelte.js"; import { error } from '@sveltejs/kit'; // Helper function to add sleep (delay) const sleep = (ms) => new Promise(resolve => setTimeout(resolve, ms)); export const load = async ({ url, params }) => { try { // Sleep for 100ms before proceeding await sleep(1000); // Pagination logic for inventory const page = Number(url.searchParams.get('page') || 1); const pageSize = Number(url.searchParams.get('pageSize') || 10); const totalInventory = inventoryData; const startIndex = (page - 1) * pageSize; const endIndex = startIndex + pageSize; return { inventory: totalInventory.slice(startIndex, endIndex), totalCount: totalInventory.length, currentPage: page, pageSize: pageSize, }; } catch (e) { console.error(e); error(404, 'something went wrong'); } };