Гость
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / как делать пагинацию при множестве фильтров? / 7 сообщений из 7, страница 1 из 1
07.05.2018, 19:51
    #39641661
tip78
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как делать пагинацию при множестве фильтров?
когда фильтров много, да ещё и с джойнами, то способ с IOS уже не работает, на всё же индексы не поставишь...
миллиард строк оффсетить тоже не вариант
а что остаётся?
во1, как вообще показывать кол-во страниц, если неизвестно общее кол-во, просто писать 'Last' ?
а во2, как на 10ю с конца страницу перейти быстро-быстро?

есть так себе вариант брать оригинальную таблицу + её кол-во строк и по нему генерить кол-во страниц (в конце-концов, кто их там проверять будет)...
или же просто ВООБЩЕ не заморачиваться, а в фильтре показывать только 1-10 и всё
в конце-концов, это же фильтр! Фильтруйте, сортируйте, зачем вам последняя страница?!
...
Рейтинг: 0 / 0
07.05.2018, 20:12
    #39641671
Alex URS
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как делать пагинацию при множестве фильтров?
tip78просто ВООБЩЕ не заморачиваться, а в фильтре показывать только 1-10 и всё!

после долгих головоломок я в своё время пришёл именно к этому, т.к. count очень дорогая штука

tip78 брать оригинальную таблицу + её кол-во строк и по нему генерить кол-во страниц
не вариант - у Вас ведь джойны и фильтры - как Вы себе это представляете? если фильтр отбирёт 10 записей, а вы подсуните 1000 страниц
...
Рейтинг: 0 / 0
07.05.2018, 21:01
    #39641683
Maxim Boguk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как делать пагинацию при множестве фильтров?
tip78когда фильтров много, да ещё и с джойнами, то способ с IOS уже не работает, на всё же индексы не поставишь...
миллиард строк оффсетить тоже не вариант
а что остаётся?
во1, как вообще показывать кол-во страниц, если неизвестно общее кол-во, просто писать 'Last' ?
а во2, как на 10ю с конца страницу перейти быстро-быстро?

есть так себе вариант брать оригинальную таблицу + её кол-во строк и по нему генерить кол-во страниц (в конце-концов, кто их там проверять будет)...
или же просто ВООБЩЕ не заморачиваться, а в фильтре показывать только 1-10 и всё
в конце-концов, это же фильтр! Фильтруйте, сортируйте, зачем вам последняя страница?!

Первые 10 страниц только дальше только с фильтром по дате (как у ЖЖ лента сделана)
...
Рейтинг: 0 / 0
07.05.2018, 21:58
    #39641700
tip78
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как делать пагинацию при множестве фильтров?
Maxim Boguk, ЖЖ, кстати, тормозной жесть
а почему по дате то? там же надо брать последний ID и с него дальше двигать. Как-то вы отвечали недавно тут:
авторНу вот например есть у вас таблица с постами в форуме. Следующая страница (ссылки) формируется не через limit/offset (которые не будут корректно работать если новые посты например.
появляются), а через where post_id < (последний post_id на текущей странице) LIMIT сколько вам надо.
Т.е. не ссылка на prev page вида skip=50 а ссылка на prev page вида before_post_id=[последний post_id на текущей странице].
Тогда как минимум это во многих случаях будет нормально работать по скорости и главное навигация не будет ломаться при появлении новых постов (что в 100% случаев происходит с limit/offset.
пагинацией).

PS: если у вас там 5-10 страниц максимум - можно и limit/offset а вот если потенциально 1000 страниц - то нет.
и у ЖЖ, кстати, там "&page=4" - вот так вот. И 60 комментов на странице.

зы: кстати, спасибо за ваши видео-объяснялки и пдф-ки, законспектировал их )
...
Рейтинг: 0 / 0
07.05.2018, 22:23
    #39641703
tip78
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как делать пагинацию при множестве фильтров?
хотя нет, не 60, у них там как-то резиново всё
есть 297 постов и 6 страниц
есть 100 постов и 5 страниц
а есть 900 постов и 7 страниц
видимо чтобы все страницы всегда были на виду
...
Рейтинг: 0 / 0
25.05.2018, 04:19
    #39649645
tip78
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как делать пагинацию при множестве фильтров?
кстати, вот тут count() послогали в разные стороны, в конце результаты есть
практически ничего нового, но может интересно кому
...
Рейтинг: 0 / 0
25.05.2018, 04:20
    #39649646
tip78
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как делать пагинацию при множестве фильтров?
ну а я остановился на вариантах, когда кол-во выводимых строк прямо в фильтре указывается, либо страницы подгружаются по мере прокрутки, как в ютубе
а так то при наличии фильтрации страницы и не нужны вовсе
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / как делать пагинацию при множестве фильтров? / 7 сообщений из 7, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]