# Беседа: beseda-20261005-1646.txt # файлов: 6; начало: 2026-10-05 16:46; конец: ~2026-10-05 17:16 ## 2026-10-05/rec_20261005_164614.m4a (старт 16:46:14) [00:00:00] У тебя будет сет-фильтр категории, а потом у тебя он сет-фильтр, сет-фильтр, сет-фильтр и так далее. [00:00:10] А потом у тебя идёт селеп. [00:00:13] Фильтр, ну вот это передается, фильтр, пошло поехало то, что мы обсудили. [00:00:17] Теперь вопрос. Как нам сделать первичную унициализацию? [00:00:25] Вот. Как это мы делаем? [00:00:30] Ну, мы запрашиваем все карточки. [00:00:35] Кругло просто, мы тогда первый раз обуждали, что мы сразу с картинками частись. [00:00:41] И ждём, но мы делаем селеп курс и ждём, или что? [00:00:46] Ну, тогда ждём, а что? [00:00:51] Вот получается, когда у тебя курс, курс-каталог-принтер должен разменить пространство для себя, [00:00:58] подвесить вот эти заглушки, глобальные, и сделать селеп на пустой фильтр. [00:01:05] Либо на тот фильтр, за самом деле, который ему будет передан или он его прочитает [00:01:15] на сквере стринтер, вот на него он должен сделать. [00:01:20] Внутри, соответственно, курс-каталог запрашивает данные, [00:01:24] если они их не было, и потом применяют фильтр, такая логика. [00:01:29] Ну, давайте ещё раз, у тебя главный, то есть ты наверху берёшь просто какой-то контейнер [00:01:35] и создаёшь курс-каталог, давай мы осределимся, пусть это будет курс-каталог объект, [00:01:41] а второй будет объект, курс-провайдер и иммач-провайдер, пусть они будут вот так называть, [00:01:47] куда будет всё чётко, вот. [00:01:50] Всё, тогда вот у тебя курс-каталог, соответственно, у тебя получает фильтр, [00:01:56] вот какой-то мы можем, наверное, сослаться на страничку с отфильтровыми фильтрами, [00:02:01] но для этого тогда он после установки фильта должен менять курс-каталог в якорной часть. [00:02:09] Здесь уже красиво делать, знаешь о чурниторе? [00:02:15] Ну да, это говоришь, а допомне, допомне менять УРЛ, там через решётку ставить, [00:02:23] как бы точку переноса, обычно она раньше ставит. [00:02:26] По сути, ставить туда фильтр, фильтр туда ставит. [00:02:30] Более того, ты можешь фильтров внутри себе не хранить, [00:02:33] ты можешь его читать уже сверху, менять в него то, что тебе кликнули [00:02:39] и писать его новый туда, вот так можно делать. [00:02:44] Вот, вот, вот, это соответственно касается инициализации. [00:02:49] Ну и обрати внимание, если вот это по-человечески прописать, [00:02:53] у тебя даже столько стрелок не будет, сколько сейчас нарисовывано, [00:02:56] и будет ещё меньше, понимаешь, да? [00:02:59] Ну вот, поэтому первое, второе сделать, теперь прокрутка. [00:03:07] Мы хотели с тобой прокрутку, оптимизируясь в точке движения того, [00:03:15] что не запрашивать для всех картинки. [00:03:19] Да, на два экрана вперёд запрошу. [00:03:22] Ну, она ничем не отличается. [00:03:30] Отличается только тем, что надо определить количество, [00:03:33] определить айдичники картины, к которым нам нужно запросить. [00:03:37] Всё. [00:03:39] Я тут, знаешь, просто думаю, что вот, смотри, [00:03:41] если мы один раз карточку отрисовали с установленным на ней картинкой, [00:03:48] наверное, что нам по ней не надо повторно картинку запрашивать. [00:03:51] Даже у имеч-провайдера, даже не то, что насеет, [00:03:55] даже у имеч-провайдера. [00:03:57] Ну, а как мы будем понимать, что нам не надо. [00:04:00] Вот, смотри, мы, например, показали, [00:04:03] потом ткнули, подожди, потом ткнули, например, [00:04:07] фильтр какой-то по категории, [00:04:09] а потом хоб сняли фильтр. [00:04:11] То как вот? [00:04:15] Я думаю, наверное, у жала. [00:04:17] Нет, значит, тут ли не механизма, логика какая-то. [00:04:19] Либо ты в объектах тех хранишь, [00:04:21] что у тебя картинка установлена, [00:04:23] и по ней не надо запрашивать. [00:04:25] Это один вариант, простой. [00:04:27] Ну да. [00:04:29] Второй вариант. [00:04:31] Ваше томалирь объекты. [00:04:35] Ты такое говоришь, слава, Миш, я фигеваю. [00:04:37] Что такое, что мы или объект? [00:04:41] А здесь там? [00:04:43] А здесь там? [00:04:45] Блин, а объекта... [00:04:47] Ну, подожди. [00:04:49] У тебя есть жеваст-крипт-объекты, [00:04:51] которые лежат в курс-каталлоне, [00:04:53] в курс-провайдере, [00:04:55] на лоне. [00:04:57] И есть разметка. ## 2026-10-05/rec_20261005_165115.m4a (старт 16:51:15) [00:00:00] Вычислять по дому, если изображение. Или мы все-таки в курс каталогии будем отметить, что изображение от Риндейлина. [00:00:15] Это да, мы будем всегда по курсу, от Сельперченому, знать, есть в нем изображение, уже или нет. [00:00:23] То есть у нас всегда, тогда в курс каталогии у нас всегда будет список, список карточек, с состоянием. [00:00:31] И, грубо говоря, отражение этих карточек уже в доме. [00:00:37] Нет, ну, на обратную сторону, наверное, из доменного объекта мы рендерим карточки. [00:00:48] Просто относительно рендерим карточки. [00:00:52] Карточки будут рендериться каждый раз. Или они будут от рендерей, если скрываться, показываться. [00:01:02] Ну, она идеальная, когда, если ты один раз ее рендерил и потом скрываешь, [00:01:10] а если ты не пролистал, не дошел до следовища, ну, то есть тебя вот открыл со первого экрана, [00:01:16] ты пошел дальше, ты даже листать не стал, то и не надо их строить. [00:01:22] Все, не только у тебя, в виде объекта слежет. [00:01:27] Ну, порядочек у тех, как. [00:01:29] Порядочек. [00:01:31] Ну, наверное, по сортировке поедишнику, наверное, не как-то. [00:01:37] Какой последний рендерил в то карту. [00:01:41] Потом в херах тебя сказали, сортируй по категориям. [00:01:45] Их должен как-то упалять. [00:01:47] Нет, давай по цене. [00:01:50] Нет, давай по названию. [00:01:54] Ты имеешь в виду, что нам получается, что мы будем рендерить каждый раз, [00:02:05] когда будет меняться условия рендерин, вы бы говорили, там фильтры или сортировки. [00:02:17] Да. [00:02:18] Вот ты об этом говоришь. [00:02:20] Ну, наверное, да, если у нас будет более сложным. [00:02:24] Вы только один из вариантов. [00:02:27] Может, у тебя рендер как-то, презвитер, и все. [00:02:30] Он получил курсы, еще и стерк вина, и я триггарил подовой. [00:02:35] Ну, если это не будет тормозить. [00:02:39] Ну, наверное, не будет, да, что там, что объекта в тормозить. [00:02:43] Ничего страшного. [00:02:44] Ну, да. [00:02:45] Наверное, да. [00:02:46] Но я сторонник чего? [00:02:47] Потому что сейчас делаем правиль, потом делаем правиль, [00:02:52] в том числе с точки зрения расширяемого на будущее. [00:02:55] А потом уже делаем, оптимизируем это что-то. [00:02:59] Если мы можем рендерить всегда, снося, все. [00:03:02] Ну-ка, почему нет? [00:03:04] Тогда в этом случае надо учесть, что у тебя в доменном объекте надо хранить, [00:03:08] было ли было ли изображение. [00:03:10] Более того, получается, кулбек должен записать ссылку, [00:03:16] ну, либо самой изображение в объект с курсом, [00:03:20] и потом его отрендерить в карту, дориендерить в карту. [00:03:24] Понимаешь, да? [00:03:25] Ну, да. [00:03:26] Тогда в следующий раз у тебя курс придет вместе с изображением, [00:03:30] и когда ты будешь отбирать курсы для запроса изображений, [00:03:35] ты уже этот курс туда не включишь. [00:03:37] Ну, да. [00:03:39] О, это как бы мы разобрались с тобой, как будет отображение. [00:03:47] Потому что мы сейчас что делаем? [00:03:49] Мы сейчас делаем основу, в том числе потом для нашего каталога курс. [00:03:53] Вот на логику проговаривается, чтобы он потом был такой же. [00:03:58] О, теперь что у меня еще осталось из-за вопросов? [00:04:06] Да, окно отверстие. [00:04:09] Прокрутка вниз. [00:04:11] То есть мы берем, получается, возвращенный на лог курсов, [00:04:24] из каталога курсов. [00:04:30] И тогда мы, по сути, рендерим карточки и по ним [00:04:37] и запрашиваем от того, что мы отправляем на рендер, [00:04:41] и запрашиваем изображение. [00:04:45] Если карточки дни были заранее уже построены. [00:04:51] У нас есть два варианта. [00:04:53] Либо мы сразу рендерим все карточки. [00:04:56] Либо мы из... ## 2026-10-05/rec_20261005_165616.m4a (старт 16:56:16) [00:00:00] по мере просмотра пролистывания тогда просто смотри в чем в чем разница смотри либо мы тогда [00:00:08] объединяем эти два процесса то есть в первом случае мы просто все все трендерили и кусками [00:00:15] запрашиваем картинки получается рассреды курсов он отличается от у нас все в трех [00:00:23] состояниях есть общий каталог курсов есть от рендеренные карточки как бы есть [00:00:32] этот самый есть картинки это три разных на пора а вот если у нас будет общий каталог потом [00:00:41] отфильтрованные курсы и потом у нас будет от рендеренные курсы и карточки по ним же запрошены [00:00:47] они тогда будут идти вместе то есть по курсу от рендерили карту если не было [00:00:54] этого самого если не было изображение значит запросили эту пачку изображения понимаешь да ну [00:01:02] я бы наверное заранее обо ней рендерил то есть я обо рендерил только то что видно плюс еще [00:01:08] один плюс еще одну строку тогда когда из возвращенного набора надо взять то есть у нас [00:01:20] должна быть какая-то функция когда мы сделали селепет записали в презентр куда-то эту коллекцию и [00:01:29] что делаем и делаем вот столько мы сейчас отправим на рендеринг у нас тогда должно быть где-то [00:01:42] записано какой сейчас размер окна и на какой курс все мы находимся сейчас то есть это получается [00:01:54] их некий первый из виден и из видимых курса тогда мы рассчитываем насколько нам надо курсов добавить [00:02:02] вот этот вот видимый набор все равно смотрит если мы будем с тобой до рендеривать курсы до рендерей [00:02:15] идет мне пошло не нравится мы с тобой попадаем в дополнительный ну такой вот процесс не очень приятный [00:02:24] трудно он не очень он умеет чтобы рендеривать размер трудно предсказуемый потому что [00:02:33] какой скорости нет не с этой точки зрения скорости все будет быстро работать он потому что его можно [00:02:42] вообще не заниматься взял от рендерил и молодец но тебе все равно от рендерил их ну ты их как [00:02:54] от рендерил ты прямо от рендерил смысле по прямо сделал список объектов в доме а потом ты [00:03:03] при когда у тебя меняется сортировка ты перерендериваешь или ты просто переставляешь местами [00:03:10] тогда нахер от тебе 400 карточек карточек рендерить сразу же когда ты на первый экран попадаешь [00:03:19] каждый раз будет 400 карточек перерендерил [00:03:32] когда вы получите набор курсов мы должны поступить [00:03:43] какой-то карту когда какие курсы отправлять на рендерить [00:03:54] и привязаться к скролу и тогда у тебя отдельная должен быть он скрол метод [00:04:05] где ты по картинате скрола смотришь то есть какие курсы должны войти в окно понимаешь да [00:04:14] то есть ты можешь даже по одной строке до рендеривать но по одной я бы не делал тогда у тебя [00:04:20] будут слишком маленькие запросы на картинке я бы пачками подкипывал [00:04:25] давай я сейчас подключу что мне чат то она чат вот этот у нас да 2 минуты как он подключил [00:04:45] ну то есть я бы делал так вы получили курса и мы строим так ## 2026-10-05/rec_20261005_170116.m4a (старт 17:01:16) [00:00:00] Мы говорим, что если координат будет такой, то соответственно [00:00:09] то-то. [00:00:10] Если такой, то то-то. [00:00:11] А дальше мы просто переноспираем вот эту систему, причем [00:00:15] это у тебя должно быть на два события, то есть на onScron [00:00:20] и на resize. [00:00:21] То есть если ты начинаешь с изменения 5 окно относительно [00:00:26] этого самого, ты вот эту вот таблицу с координатами [00:00:30] и рестра, и воешь. [00:00:34] Либо второй вариант, и таблица должна быть, а некая [00:00:38] функция, которая тебе выдает порядковый номер курса, [00:00:42] до которого должны быть отределены карточки, должны [00:00:46] быть параметры у этой функции, что например мы два экрана [00:00:51] вперед захватываем. [00:00:53] Понимаешь, да? [00:00:54] Да. [00:00:55] Такой структуры, а есть просто расчет. [00:00:57] Вот, в принципе, тогда можно и, ну да, просто как [00:01:03] resize произойдет, просто надо вызвать эту функцию [00:01:06] еще раз и все. [00:01:07] Ты получается, ты вызываешь функцию типа, до загрузка [00:01:13] или там до вендейлинг курсов, так и назовем. [00:01:16] У тебя как до вендейлинг курсов работает? [00:01:19] Он просто смотрит, какой у нас сейчас координат [00:01:24] о скролу, так, о формулу, до какого курса должно быть [00:01:29] от рендейлера, до этого, да, а до какого трендейлина [00:01:33] вот до этого, да, значит и соответствует, то есть [00:01:36] тебе нужно тогда структура, ну в принципе, это можно [00:01:40] и в основной структуре отмечать, который будет вот [00:01:42] этого оперировать к курс-провайдер, ну то есть курса трендейлина [00:01:48] или нет. [00:01:49] Понимаешь, да? [00:01:50] На нее операция нам нужна постоянно, да, но так собственно [00:01:59] это и должно быть, хотя если ты до вендейли плывешь, [00:02:04] тогда тебе, когда тебе не нужно хранить кэш-возвращенность [00:02:12] изображений, очень прикол. [00:02:15] Не, ну то есть ты всегда действуешь с нуля, то есть тебе курс-провайдер [00:02:20] какие-то объекты и ты начинаешь, по сути, надо начинать [00:02:24] работать с копии этих объектов и с их дополнительными [00:02:28] параметрами, которые на них висят, потому что дальше [00:02:32] на себя принимает каталптолок, курс-каталлок, я бы назвал [00:02:44] его не курс-каталлок, а просто каталлок-резинтер, как [00:02:49] есть, вот так вот. [00:02:50] То есть будься каталлок-резинтер, курс-провайдер и изображеннер. [00:02:54] Понимаешь, да? [00:02:55] Лула, то есть ее начинают работать с этими объектами [00:02:58] дополнительными, после того, как ты вернул курс-провайдер. [00:03:03] Понимаешь? [00:03:04] То есть он будет ставить флопаде, трендейлина, не [00:03:08] нет, есть на них изображения, нет на них изображения. [00:03:11] Чего-то не отрицает, что вымышь-провайдер должен [00:03:14] быть кэш всех скачем изображения. [00:03:16] Понимаешь, да? [00:03:17] Это вообще не зависит от этого. [00:03:19] А, значит, давай попробуем. [00:03:21] Поэтому попробуем вот не все вот это, ну вот тогда [00:03:24] собственно покрутка у тебя очень простая, вот у тебя [00:03:26] есть он скроет, он уже тут нарисован прекрасно и туда [00:03:29] же добавить он в ресайс, он в ресайс, теперь дальше, [00:03:34] что у тебя написано? [00:03:35] Где-то в курсе с курс-провайдер, и по-хорошему, по-хорошему [00:03:41] мы должны вызвать функцию, которая тебе выдаст порядковый [00:03:47] номер курса, до которого нужно отрендерить карточки. [00:03:53] Понимаешь, да? [00:03:55] Да. [00:03:56] Потом ты берешь дельт между последним отрендеренным [00:04:00] курсом и порядковым номером, который должен быть отрендеренным. [00:04:04] И этот блок даешь функцию на рендеринг. [00:04:07] Это дальше вот этот блок просто он поступает на стандартный [00:04:16] вот этот механизм рендеринга, то есть скажем так, то есть [00:04:20] он у тебя будет один датвой, и при скроле, и при этом, [00:04:30] и при фильтре, то есть сейчас смотри, у тебя по сути [00:04:34] этой схеме наверху должен быть блок профильта, то есть [00:04:38] он категории клика, очень-очень импорт, импорт получения [00:04:42] соответственно курсов, потом у тебя идет отсечка, [00:04:48] то есть мы пошли в рендеринг, в том числе, рендеринг происходит [00:04:54] еще дополнительно по событиям, он скрол его в ресайст. [00:04:58] Ну и как продолжение. ## 2026-10-05/rec_20261005_170617.m4a (старт 17:06:17) [00:00:00] и крик, и он всё чьим-то понимаешь, да, то есть он либо сбраку залетает туда, либо сверху тут в этот [00:00:08] кусок сваливаешь, ты понимаешь, о чём я говорю? Ну, более-менее. Нет. Ну, смотри, у тебя первое [00:00:18] получение курса в север, да? Ну, оно как бы у тебя устраивается, потом у тебя идёт, потом идёт [00:00:27] фильтрация. Ну, получение, я вспомнил, получение, если мы смотрим глазами каталог, каталог [00:00:33] презентера, то первое я получаю курс. Да, потом по хорошим, по хорошим [00:00:40] зависимости. Из этих курсов. Да, походу, смотри, то есть потом следующий шаг, то есть мы в зависимости [00:00:47] от фильтра и состояния каталога, говорим, каталога, мы выбираем список курсов, [00:00:56] и в той последовательности, с которой они будут отображаться. То есть весь, вот если у нас [00:01:03] все 400, грубо говоря, все 400 курсов у нас должны отобразиться в такой-то последовательности, [00:01:10] мы их все 400 выбрали, это весь вектор, с которым мы работаем. Дальше мы определяем окно, [00:01:18] которое будет отображаться, плюс какие-то условия, сколько ещё вот окно дополнительно в [00:01:25] вазе, да, то есть невидимых, но, которые будут от рендерина. И, соответственно, ну как не рендерин, [00:01:34] скорее всего мы создаем, или мы ничего не создаем, мы рендерим и ставим определенные флаги, [00:01:40] вот этот список сформированный, зависимо, сколько коль сортировки выводить, мы в нем ставим флаги, [00:01:48] что вот у нас что-то вот эти карточки построены, картинки загружены, такие загружены, [00:01:54] потом, соответственно, когда колбэк будет, у нас будут, соответственно, эти флаги о том, [00:01:59] что картинки загружены проставляться. И все, то есть как только у нас меняются фильтры и там [00:02:08] сортировки, у нас, соответственно, вектор сбрасывается, строится новый вектор, [00:02:13] может быть даже не сбрасывается, скорее всего, раз мы заново рендерим, он строится [00:02:20] новый вектор, с учетом, что какие-то ну все, новый вектор ставится и все остарается. [00:02:26] Презентер запрашивает новый вектор у курс проведера. Да, зависимость от фильтрации и [00:02:34] получает новый вектор с фильтрами и снова с фильтрацией. И пошел заново, опять определил [00:02:41] окно за рендерил, запросил картинки, соответственно, часть картины прилетели из кэша, по-быстрому, [00:02:49] раз у нас с тобой рендеринг не хранится никак, каждый раз сбрасывается, то и все. У нас [00:02:57] примерно вот я так вижу. Ну смотри, коротко подведем, то есть первая инициализация фильтра [00:03:04] идет, правильно? Да. Установка, определение фильтра. Второе идет, получение курс, [00:03:12] третье идет. Выбор множества, или там выбор курсов для, вот так вот еще туда, до, [00:03:28] вот так, раз, теперь, четвертая, запрос изуражительный, пятая, очень хроновая. [00:03:54] Отображение картинки. Ну, товарищ, ты запросил, ты всегда запрашиваешь изображение, всегда, [00:04:12] по всем курсам, которые попадают в окно, на ренды перед и у тебя, соответственно, [00:04:21] провайдер всегда кулбет, для них вызывает каталог презонтер. То есть каталог презонтер сам [00:04:36] крокимки не отображает, он всегда, они туда прилетают, не могут через кулбет. Ну да, [00:04:43] по сути, кулбет, это шьему будет, код, который будет подставлять. Короче, вот и все. Ну и дальше идет шестое, [00:04:56] это обработка событий. ## 2026-10-05/rec_20261005_171118.m4a (старт 17:11:18) [00:00:00] Вот, теперь, теперь. Мои в чем прикол? Значит, у тебя до первого блока идет у тебя событие, он ловит, и он фильта, ну, будет телес. [00:00:20] Категории, и он сетч, вот, лучше сетч, я бы сто писал, вот, а соответственно, 10 добавляется еще два события. [00:00:43] Вот, твой план, по большому счету. [00:00:57] То есть, в нем не расписано внутреннего каталогов-провайдера, имыч-провайдера, но лодика работает, каталог-презентр, еще курс провайдера, имыч-провайдера, не расписано, а каталог-презентр расписано. [00:01:15] Все, смотри, эксцезация фильта, улучшение курсов, соответственно, выбор курсов для рендеринга и до рендеринга, это важный момент, да? [00:01:32] Дальше, всегда запрос изображений, естественно, для, не для всех курсов, да, для тех, где их еще нет, да, то есть, которые отправлялись на рендеринг или до рендеринга. [00:01:45] То есть, короче, зависимости от того, что было на третьем пункте, определённый пункт четвертый. Понимаешь, да? [00:01:53] Всё, что на третьем пункте пошло до рендеринга, то есть, до рендеринга, отправляется в комбо режиме на запрос изображений. [00:02:00] А отображение изображения у тебя просто комбат, который ты писаешь на четвертом пункте, всегда в запросе. [00:02:09] И поэтому он у тебя поштучно отрабатывает возвращаемое запно вызовы на него. Ну и всё, то есть, вот абсолютно понятная история. [00:02:19] То есть, если её здесь сейчас расписать, ну как бы, сделать вторую версию с чего-то вот этого, да? [00:02:26] Причём, я бы сделал сначала версию взаимодействия курс-каталога, значит, отставить каталог презентера и курс-провайдер, или мыть-провайдера. [00:02:37] Кто чего, кончил вот по этой схемке. А потом уже добавил бы сюда внутрянку их рабу, вот и внутри себя. [00:02:47] Ну, то есть, сначала вот от этой фигни, а потом уже там, что там с внутренкой? Ну, с внутренкой всё просто. [00:02:55] И мыть-провайдер просто киширует, то, что к нему приходит, да? [00:03:01] Вот, не знаю там, с какими параметрами, но тем не менее. [00:03:06] Каталог отставить, курс-провайдер просто скачивает один раз из интернета, ну и с сервером, и всё, и пока страница висит, он держит у себя этот курс-провайдер. [00:03:20] Курс-провайдер просто курс-провайдер возвращает вектор полученных курсов в зависимости от фильтра и от сортировки. [00:03:34] Ну, я бы так сказал, что курс-провайдер у тебя кеш прямо в объекте, а для image-провайдер у тебя кеш, грубо говоря, в индексной банте. [00:03:52] И при этом они оба используют ещё серверный кеш, но так работает, конечно, должна быть другая картинка, не это. [00:04:03] Ну, вот, ну и здесь не хватает, конечно, чего не хватает. [00:04:19] Не знаю, но можно ещё что-то нарисовать, чтобы он был прямо в телевизоре описан. [00:04:26] Рендер-карт, по факту это не рендер-карт, но сам на себя, а относительно дом страницы. [00:04:35] Потому что мельдом где-то должен быть, у тебя рендер-карт относительно его выполняется. [00:04:41] Выделять его, выделить его в обед на объект, потому что мельдом стоит просто подписаться на моего использования. [00:04:49] Нет, в обед, я же. [00:04:51] То есть, после каталога передыгнуть на базу, тогда вот это будет прямо вот...