Двойной пейджинг jqGrid (как на стороне клиента, так и на стороне сервера) - PullRequest
1 голос
/ 03 февраля 2011

Есть ли простой способ сделать двойной пейджинг (т. Е. На стороне клиента и сервера)?

Сейчас я использую пейджинг на стороне клиента (loadonce = true, который работает очень быстро, кстати!), Используяфиксированный rowTotal (с rowTotal> rowNum).Проблема в том, что rowTotal

С другой стороны, выполнение просто подкачки на стороне сервера приводит к низкой производительности (поэтому вы используете компонент AJAX;п).Поэтому я подумал, что комбинированный подход позволит достичь лучшего из обоих миров.

В идеале это будет выполнено автоматически.Это: пейджер должен отображать первые результаты rowTotal / rowNum как первую из N страниц, загруженных в память (на стороне клиента).При переходе на страницу N + 1 он должен попасть в бэкэнд и получить следующие результаты rowTotal.Проблема, которую я вижу сейчас, состоит в том (я думаю), что количество страниц рассчитывается на основе размера результирующего набора, деленного на rowNum вместо записей в базе данных, плюс большинство свойств пейджера являются неизменными: (

Имеет ли это какой-то смысл? Есть ли простой способ сделать это без взлома кода jqGrid?

С уважением!

1 Ответ

3 голосов
/ 03 февраля 2011

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

На моем опытном сервере пейджинг на AJAX работает очень быстро. Все зависит от реализации на стороне сервера, но в случае оптимальной реализации на стороне сервера результаты соответствующего запроса кэшируются, и следующая / предыдущая страница будет получена из кэша SQL Server.

Я рекомендую вам использовать чистую подкачку на стороне сервера и при необходимости произвести некоторую настройку производительности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...