Size: a a a

GraphQL — русскоговорящее сообщество

2020 March 10

@

@ch3ll0v3k in GraphQL — русскоговорящее сообщество
4 года в универе пропущены )))))
источник

АР

Алексей Родионов in GraphQL — русскоговорящее сообщество
Artur
Помоги плиз, ниче не работает, шо делать.
StackOverflow на ноуте. XD
источник
2020 March 11

AR

Alexander Rudenko in GraphQL — русскоговорящее сообщество
Ребят, всем привет) Можно вас попросить дать объективный фидбэк по моему докладу, чтоб я учел все недостатки - https://youtu.be/smFyitWV2fE
источник

BW

Bruce Wayne in GraphQL — русскоговорящее сообщество
Тема доклада годная, но я из-за того как вы говорили прям в микрофон, от этого меня, хватило на 10 минут .
источник

AR

Alexander Rudenko in GraphQL — русскоговорящее сообщество
Эххх, знаю(((
Был такой недостаток. Пасиба за фидбэк😉
источник

AP

Andrey Parasich in GraphQL — русскоговорящее сообщество
Как в GtaphQL сделать пагинацию, чтобы задавать числом смещение относительно начала списка (сколько элементов мы пропускаем) ?
источник

FM

Fedor Moroseev in GraphQL — русскоговорящее сообщество
Как вы относитесь к grahql-ld ?
источник

BW

Bruce Wayne in GraphQL — русскоговорящее сообщество
Andrey Parasich
Как в GtaphQL сделать пагинацию, чтобы задавать числом смещение относительно начала списка (сколько элементов мы пропускаем) ?
Я кастомную на реакте делал
источник

is

il.ya sald.in in GraphQL — русскоговорящее сообщество
Andrey Parasich
Как в GtaphQL сделать пагинацию, чтобы задавать числом смещение относительно начала списка (сколько элементов мы пропускаем) ?
я обычно добавлял в инпут offset и limit, и обрабатывал их в резолвере потом
источник

YY

Yuriy Yarosh in GraphQL — русскоговорящее сообщество
источник

BW

Bruce Wayne in GraphQL — русскоговорящее сообщество
Andrey Parasich
Как в GtaphQL сделать пагинацию, чтобы задавать числом смещение относительно начала списка (сколько элементов мы пропускаем) ?
Просто получи коллво элементов. Заведи себе переменную const PAGINATION_COUNT и храни там коллво, выводимых значений. А дальше от этого играйся. Ты знаешь, что у тебя выделиться 6 значений, ты знаешь максимальное. Дальше только дело фантазии )
источник

t

toriningen in GraphQL — русскоговорящее сообщество
Andrey Parasich
Как в GtaphQL сделать пагинацию, чтобы задавать числом смещение относительно начала списка (сколько элементов мы пропускаем) ?
лучше не использовать оффсет, а использовать курсоры (https://graphql.org/learn/pagination/, https://www.apollographql.com/docs/react/data/pagination/#cursor-based и т.д.)

почему - потому что если список значений продолжает обновляться (например, в него добавляются новые элементы в голову или удаляются с головы), то страница по оффсету будет либо показывать дублирующиеся элементы, либо пропускать элементы (и пользователь об этом не узнает)
источник

is

il.ya sald.in in GraphQL — русскоговорящее сообщество
toriningen
лучше не использовать оффсет, а использовать курсоры (https://graphql.org/learn/pagination/, https://www.apollographql.com/docs/react/data/pagination/#cursor-based и т.д.)

почему - потому что если список значений продолжает обновляться (например, в него добавляются новые элементы в голову или удаляются с головы), то страница по оффсету будет либо показывать дублирующиеся элементы, либо пропускать элементы (и пользователь об этом не узнает)
+1
если используешь relay, он из коробки умеет с такой пагинацией работать
источник

AR

Alexander Rudenko in GraphQL — русскоговорящее сообщество
il.ya sald.in
+1
если используешь relay, он из коробки умеет с такой пагинацией работать
👍🏻
источник

A1

Art 141 in GraphQL — русскоговорящее сообщество
toriningen
лучше не использовать оффсет, а использовать курсоры (https://graphql.org/learn/pagination/, https://www.apollographql.com/docs/react/data/pagination/#cursor-based и т.д.)

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

t

toriningen in GraphQL — русскоговорящее сообщество
у меня как раз таблица с кучей фильтров и сортировок, которые меняет пользователь, и навигация происходит постранично - тем не менее, я использую курсоры, потому что риск пропустить запись неприемлем
источник

A1

Art 141 in GraphQL — русскоговорящее сообщество
А если снизу надо сразу показать первые 5 страниц и последние 5, что бы пользователь мог сразу на них перейти. Откуда курсоры взять?
источник

A1

Art 141 in GraphQL — русскоговорящее сообщество
Плюс я так и не видел нормальной работы сортировок и фильтраций в курсорах. Есть примеры?
источник

t

toriningen in GraphQL — русскоговорящее сообщество
Я не могу сбрасывать свой код, но в сортировках и фильтрациях применительно к курсорам нет ничего сложного.

Общий подход такой - курсор хранит в себе первичный ключ опорной записи, направление отображения, режим сортировки и текущий набор фильтров. На каждую страницу у вас может быть много курсоров. Я с каждой страницей возвращаю
- курсор на первую страницу (не содержит первичного ключа, направление "вперед", + текущие фильтры и сортировка),
- курсор на следующую страницу (первичный ключ последней записи на странице + остально),
- курсор на предыдущую страницу (первичный ключ первой записи на странице + остальное),
- и курсор на последнюю страницу (не содержит первичного ключа, направление "назад", + текущие фильтры и сортировка).

Чтобы вычислить курсор, вы сначала сортируете и фильтруете по вашим предпочтениям (главное, чтобы сортировка была стабильной), затем извлекаете все, что находится после первичного ключа опорной записи (если направление "вперед"), или то, что находится до (если направление "назад").

Если у вас "первые 5 страниц и последние 5 страниц", то это не имеет значения. Для начальной навигации у вас будет оффсет, потому что человек, который перематывается на "5 страницу с конца" и так не знает, что он хочет (и что получит). Затем, когда навигация произошла, для связного перемещения у вас уже будут курсоры.
источник

t

toriningen in GraphQL — русскоговорящее сообщество
в принципе, если есть бизнес-необходимость консистентно листаться по +-5 страниц за раз, то решение тривиально
источник