170 похожих чатов

Как в случае паджинации по курсору решается проблема, если новые

элементы добавляют в список сверху? Скажем, ты переходишь на страницу, а за то время, что ты был на предыдущей, в список уже подобавлялись новые. И тогда сдвиг будет, рассинхрон, ты нажимаешь на 2-ую страницу, а по сути переходишь на какую-нибудь более далёкую (в зависимости от того, сколько элементов добавилось).

32 ответов

8 просмотров

Этого никак не избежать

а вам это проблема? ну юзер полистает на 1 страничку больше, и что?)

Test-Test TEst Автор вопроса

То есть проще offset использовать в таком случае

Test-Test TEst Автор вопроса

Сброс состояния до актуального будет происходить на первой странице, получается?

Ну оффсет хуже, там можно в середине пропустить тоже

Test-Test TEst Автор вопроса

хорошо, убедил, оба варианта говно, не буду делать никакую паджинацию))))

знаю что на высоконагруженных штуках где лимит/оффсет не катят, то просто используют autoincrement id

Ну в целом так и есть - пагинация проблематична как не крути

это позволяет использовать только один фиксированный порядок

Делаешь запись в базе к которой записываешь id результатов, пока юзер ходит просто бегаешь по этой записи с пагинацией. Когда он приходит на первую страничку или проходит таймаут сбрасываешь значения?

Test-Test TEst Автор вопроса

А не знаешь, если сначала использовать обычный оффсет, потом будет не сложно поменять на более эффективный вариант? По идее просто сам запрос поменять, структуру бд менять не нужно, то есть выкатить такое изменение в проде будет не сложно поэтому, заранее, навернео, не имеет смысл загоняться

Как я вижу

Test-Test TEst Автор вопроса

ты сеьёзно для каждого пользователя предлагаешь на сервере ввести состояние, чтобы сохранять паджинацию отдельно для каждого? 😂😂😂

типа запоминать айдишники которые были выведены юзеру при выборке, правильно понял?

Ага

Нет, но это вариант как сделать это с минимальными затратами. Обычно похуй на такое

ну такое, имхо больше запаришся с оптимизацией этого чем с решением на лимите или айдишниках

а какую ты базу используешь? в postgress + typeorm это решается через .skip() .take() это если мы говорим про простую пагинацию

Test-Test TEst Автор вопроса

> skip ... take > обёртка для offset ))))))))

Test-Test TEst Автор вопроса

>typeORM Фу, брось каку, брось

почему каку

ну я не думаю что там настолько все просто. А typeorm стоит у меня по дефолту во всех проектах, в том числе и рабочих (ентерпрайз приложения). Есть проблемы конечно, но это самая функциональная orm. И да это именно ORM а не просто кверибилдер. Пилишь энтети, все строго типизированно, плюс тайпскрипт. А если взять еще какой нибудь NESTjs то ощущения как будто под spring кодишь, но с меньшей попаболью

Test-Test TEst Автор вопроса

> тайпорм стоит у меня по дефолту на всех проектах сочувствую

Test-Test TEst Автор вопроса

>все строго типизированно, Ох, не начинай...

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

Test-Test TEst Автор вопроса

> Всё строго типизировано https://www.prisma.io/docs/concepts/more/comparisons/prisma-and-typeorm

Test-Test TEst Автор вопроса

А я пишу nestJS + prisma, ощущения космические

хм, ну может попробую в каком нибудь pet проекте. спасибо! а как nest интегрируется с ней? примерно также? и главный вопрос дня, есть ли у нее сидеры?

хахах, это только выглядит призма так круто со стороны

Test-Test TEst Автор вопроса

У меня вообще никаких проблем не было, ток версию тайпскипта нужно обновить до последней. >сидеры Есть

ну, это я про призму саму

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

Похожие вопросы

Обсуждают сегодня

что насчет пагинга? на осдеве непонятно(
Vi Chapmann 🪙
26
А как старый хаскел с новым стыковать ? потому как тут работает https://play.haskell.org/saved/C3xpMzcd, а вот тут https://stepik.org/lesson/7602/step/9?unit=1473 нет ошибка C...
Fedor
131
Вопрос я правильно понимаю что в коде newtype ArrowMap k v = ArrowMap { getArrowMap :: k -> Maybe v } getArrowMap есть функция типа k -> Maybe v, если да, то не понимаю задач...
Fedor
64
Ребят, что лучше для реверса: гидра или ида?
En Vind Av Sorg
26
Делаю велосипед логгер. К сообщению хочу прикрутить некоторую информацию, типа, кем отправлено, какой уровень, и всякое такое. И тут подумалось мне, почему бы не хранить весь...
Serjone
24
Как Вы считаете нормально ли в двадцатых годах 21 века в ВУЗах Российской Федерации обучать студентов работе с TASM? Не слишком ли это "архаично"? (Если оффтоп или флейм для э...
Spiker01
52
если загрузчик efi? если сама PML4 PDPT PDT PT лежит в неудобном для меня месте?
Vi Chapmann 🪙
8
Комрады, хотел уточнить. Проперть в OnDestroy юнита-хозяина по-прежнему доступна? И еще уточнение: finalization юнита наступает раньше или позже OnDestroy?
Ed Doc
48
А я же правильно понимаю, что инструкция AT в ld только сохраняет метаинформации о том, куда загрузить сегмент, которую далее из эльфика читает grub(ну если граб)? Но я тогда ...
Evg Resh
2
Господа, импользую кастомный загрузчик, ядро запускается сразу в длинном режиме, хочу узнать, сколько всего физической ОЗУ есть у машины. И, может, знаете какие-то подводные к...
Vi Chapmann 🪙
6
Карта сайта