jQuery нумерация страниц и огромный размер - PullRequest
0 голосов
/ 14 августа 2011

Я хочу использовать jQuery pagination. Проблема в том, что для этого все данные в tabale(database) должны быть select.Теперь, например, если у нас есть table database of 10,000 rows, для нумерации страниц с jQuery size это immense (выберите все на странице).

Каково решение use pagination jQuery с low size dataна странице?

ПРИМЕЧАНИЕ: я не хочу использовать плагин

С уважением

1 Ответ

0 голосов
/ 14 августа 2011

Независимо от того, используете ли вы плагин или jQuery в этом отношении, вы должны разбивать их на сервер с помощью запроса к БД, а не выбирать Everythign и затем разбивать на страницы данные. Это можно сделать, используя LIMIT и OFFSET в запросе.

Сначала сделайте запрос qount, чтобы определить, какие есть записи о человеке:

SELECT COUNT(*) AS nb_records FROM your_table;

Теперь у вас есть все записи, доступные для запроса. И вы можете выяснить, сколько у вас всего страниц, основываясь на том, сколько записей вы хотите на страницу, примерно так в php:

$pages = ceil($nb_records/$max_per_page);

Так что теперь, когда вы поняли это, вы можете использовать параметр номера страницы, переданный из запроса, чтобы определить начальное смещение записей для этой страницы и запрос данных. Например, если вы переходите на страницу 2, и общее количество записей составляет 100, а для каждой страницы требуется 10, можно рассчитать, что смещение для начала страницы 2 составляет 20 ($max_per_page*$page = $offset) для выполнения запроса:

SELECT * FROM your_table LIMIT 20 OFFSET 40;

Так что, если мы говорим на внешнем интерфейсе ajax, вы бы запросили страницу, выполняющую запрос с номером страницы, примерно так:

$.ajax({
   url: 'page/that/makes/query.php'
   type: 'get',
   data: {"page": 1} // or whatever page}
   success: function(data){}
});

Затем будет возвращена либо полная HTML-разметка для «страницы» записей, либо объект данных (JSON, XML), содержащий сведения о каждой записи, которую вы будете использовать для создания HTML.

...