NMR jsGrid

AJAX filtering and pagination
without loading all data at once

Most WordPress table plugins dump all rows into the page and filter in the browser. That works for 50 rows. For 5,000 — or 50,000 — it means slow loads, high memory, and your full dataset exposed in the HTML source.

Client-Side vs Server-Side

Two approaches — very different results at scale.

Client-Side (most plugins) Server-Side AJAX (NMR jsGrid)
Data loaded on page open All rows at once Current page only (e.g. 20 rows)
Filtering JS filters already-loaded data SQL WHERE clause — database does the work
Pagination Hides rows in HTML, shows/hides New AJAX request per page
Data in page source All data visible Nothing except current page
Performance with large tables Degrades quickly Consistent regardless of table size
Works with 100k+ rows ✗ No ✓ Yes

How NMR jsGrid Handles This

Every interaction — filter, sort, page change — runs through this cycle.

1

Page loads with an empty grid shell — fast, nothing heavy in the HTML.

2

Grid fires an AJAX request with current page number, filter values, and sort column.

3

WordPress builds a SQL query with WHERE, ORDER BY, and LIMIT/OFFSET from those values.

4

Only matching rows for that page are returned as JSON.

5

Grid renders those rows. The rest of the dataset never touches the browser.

When the user types in a filter field, steps 2–5 repeat with filter values applied. Pagination resets to page 1 with the filtered count. All instant — no page reload.

Set Up an AJAX Table in 5 Steps

No PHP. No custom code. Just configure and embed.

1

Install NMR jsGrid

WordPress Admin → Plugins → Add New → search NMR jsGrid → Install → Activate.

2

Create a New Grid

NMR jsGrid → Add New. Name it — this becomes the shortcode ID.

3

Configure Data Source

Choose SQL and enter your query. The plugin automatically adds WHERE clauses from filter inputs and LIMIT/OFFSET for pagination.

SELECT id, name, email, department, hire_date
FROM wp_employees
4

Add Columns and Enable Filtering

Add a column for each field. Toggle Filtering on per column. Set page size (e.g. 25 rows per page).

5

Embed on Any Page

Good Fit For

Any dataset that client-side table plugins struggle with.

👥

Employee & member directories

Search by name, department, location. Instant results on large employee lists.

🛒

Product catalogs

Filter by category, price range, or any custom attribute — server-side, no lag.

🧾

Order & transaction history

Filter by date, status, or customer across thousands of records without slowing down.

🗄️

Any large dataset

Legacy tables, custom plugin data, form submissions — if it’s in MySQL, jsGrid can display it.

Ready for server-side AJAX tables?

Start free. Upgrade when you need more than 10 grids or want column auto-detection. One-time payment, no subscription.