Шаг 128.
Библиотека jQuery. Работа с таблицами. Разбивка на страницы на стороне сервера. Совместное использование сортировки и разбивки на страницы

    На этом шаге мы рассмотрим особенности совместного использования сортировки и разбивки на страницы.

    Если данных достаточно много, чтобы сортировка приносила определенные выгоды, то, скорее всего, их будет достаточно много, чтобы реализовать функцию разбивки на страницы. Нет ничего необычного в желании объединить эти две функции, используемые в представлении данных. Но так как они обе оказывают влияние на набор данных, представленных на странице, важно рассмотреть их взаимодействие в процессе реализации.

    И сортировка, и разбивка на страницы могут быть реализованы как на стороне сервера, так и в веб-браузере. Однако мы должны постоянно учитывать взаимовлияние этих двух функций, в противном случае можно получить интерфейс с обескураживающим поведением. Предположим, например, что у нас имеется таблица с восьмью строками и двумя столбцами, первоначально отсортированная по первому столбцу. В результате сортировки по второму столбцу многие строки могут поменять свое место в таблице, как показано на рисунке 1.


Рис.1. В результате сортировки некоторые строки могут изменить свое положение в таблице

    Посмотрим, что произойдет, когда к таблице будет добавлена разбивка на страницы. Предположим, что сервер возвращает только первые четыре строки и браузер пытается отсортировать данные. Если разбивка на страницы выполняется на стороне сервера, а сортировка - в браузере, процедуре сортировки будет доступен не весь объем данных, что приведет к получению ошибочных результатов, как показано на рисунке 2.


Рис.2. Получение ошибочных результатов, когда разбивка на страницы выполняется без учета сортировки

    Из JavaScript можно манипулировать только теми данными, которые представлены в странице. Во избежание проблем необходимо реализовать обе функции либо на стороне сервера (запрашивая у сервера корректный набор данных при выполнении каждой операции выбора страницы или сортировки), либо в браузере (когда все необходимые данные будут постоянно доступны для JavaScript) и добиться таким образом того, чтобы первыми отображались действительно первые строки в наборе данных, как показано на рисунке 3.


Рис.3. После устранения проблемы, обусловленной взаимным влиянием функций сортировки и разбивки на страницы

    Со следующего шага мы начнем рассматривать разбивку на страницы с помощью JavaScript.




Предыдущий шаг Содержание Следующий шаг