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

В телеге нажали на пиннед, и сразу все сообщения подгрузившими

между текущим и пиннед. А если их тысячи?

14 ответов

16 просмотров

опять-таки - зависит от реализации хранения отдельно, показа отдельно.

Янис-Kondakov Автор вопроса
Agnislav Onufriichuk
опять-таки - зависит от реализации хранения отдель...

Как это, хранение отдельно, показ отдельно?

Янис Kondakov
Как это, хранение отдельно, показ отдельно?

данные хранятся, к примеру, в редаксе. Отрисовывает компонент, ему же передаётся текущая позиция. Функция компонента при скролле диспатчит экшн типа "проверить, есть ли данные в стейте для текущей позиции". Экшн проверяет, если нет - шлёт запрос на сервер. Результат отправляет в стейт, компонент ререндерится

Янис-Kondakov Автор вопроса
Agnislav Onufriichuk
данные хранятся, к примеру, в редаксе. Отрисовывае...

Это понятно. Вот сейчас у нас текущее сообщение, последнее. Мы нажали на пиннед. Она находится на 10000 сообщений раньше.

Янис Kondakov
Это понятно. Вот сейчас у нас текущее сообщение, п...

подгружается "окно" в +- несколько сообщений относительно пина. это и в телеге заметно, когда пин старый, после перехода при прокрутке сообщения догружаются из хранилища, если его нет - с бэка

Янис-Kondakov Автор вопроса
Vitaliy Ponomarev
подгружается "окно" в +- несколько сообщений относ...

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

Янис Kondakov
А как они скролл сразу справа показывают такой мал...

в телеге - скролл относительно подгруженных данных плюс примерный рассчёт высоты от текущей позиции и вниз относительно количества сообщений от текущего до последнего.

Янис Kondakov
А как они скролл сразу справа показывают такой мал...

ещё возможно делать скролл относительно общего количества сообщений

Янис-Kondakov Автор вопроса
Agnislav Onufriichuk
в телеге - скролл относительно подгруженных данных...

для этого надо высоту каждого сообщения считать. Или нет?

Янис-Kondakov Автор вопроса
Agnislav Onufriichuk
ещё возможно делать скролл относительно общего кол...

сообщения же могут быть разной высоты. Как-то не улавливаю

Янис Kondakov
для этого надо высоту каждого сообщения считать. И...

зачем каждого считать? бери высоту одно- или двухстрочного сообщения - этого хватит ))

Янис Kondakov
А как они скролл сразу справа показывают такой мал...

вообще вот неплохая статья на тему виртуализации списков https://medium.com/ingeniouslysimple/building-a-virtualized-list-from-scratch-9225e8bec120 а оттуда уже можно глубже копать

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта