Я изучаю ситуации в веб-приложениях, ориентированных на базы данных, когда следует полагаться на сортировку таблиц на стороне клиента, а не на сортировку на стороне сервера. Одна конкретная ситуация, которая меня беспокоит, - это разбиение на страницы.
При попытке разбить на страницы большую таблицу (скажем, 10000 строк), а также отсортировать ее по определенному столбцу, какой подход будет лучше всего?
Я понимаю, что с этим связаны следующие проблемы:
- Я не могу вернуть всю таблицу на клиентскую сторону за один раз
- Я не могу отсортировать до 10000 записей с помощью javascript
- Сортировка таблицы будет включать сортировку строк на всех страницах, а не только на текущей странице.
Итак, есть ли у вас еще проблемы, которые можно добавить в этот список?
Какой подход приведет к хорошему сочетанию взаимодействия на стороне клиента и на стороне сервера, чтобы минимизировать нагрузку на сервер?
ДОБАВЛЕНИЕ:
Хорошо, сортировка по базе данных и возврат запрашиваемой страницы, предыдущей страницы и следующей страницы кажутся лучшим выбором.
Теперь рассмотрим это:
Пользователь находится на странице (3 из 10) таблицы, отсортированной по порядковому номеру. Теперь пользователь щелкает заголовок с именем «имя пользователя», желая отсортировать таблицу по имени пользователя.
Вопрос: должен ли конечный результат быть «страница (1 из 10) отсортирована по имени пользователя» или это должна быть «страница (3 из 10), отсортированная по имени пользователя»?
Я знаю, что это очень субъективный вопрос, но что вы порекомендуете и почему?