Size: a a a

2021 June 01

AK

Artyom Krasnyuk in Angular Kyiv
ну требования бывают разные, мы не знаем ситуации)))
источник

MI

Mykola Ivanov in Angular Kyiv
источник
2021 June 03

PP

Petro Prokopovych in Angular Kyiv
Привет, кто знает как можно сделать путь импорта зависимым от енвайремента?
источник

V

Vlad in Angular Kyiv
Для этого есть fileReplacements в angular.json
источник
2021 June 04

V

Vitalii in Angular Kyiv
Привіт, ймовірність мала, але все ж:
хтось працював із Ghost CMS? Є питання по multilanguage support
источник
2021 June 05

IK

Igor Kurkov in Angular Kyiv
уф.... прошел месяц спустя моих вопросов по улучшению перформанса mat-table таблицы. Хочу сказать еще раз большое спасибо @danilgudz  @th1th2  @vokilam  @rocked4 @Kolianich1996  
под катом отчет кому интересно))))
спустя несколько итераций партизанского рефакторинга было сделано следующее:
- удалены все пайпы из темплейт, их задачи вынесены - вся калькуляция и форматирование в ts в сервис по совету @Kolianich1996
- сделан маппинг темплейт для ячейки по совету @danilgudz который рили был бомбезной идеей))
- убран ngSwitch во всех местах, в ts обьект маппинг для исключения итерирования
- все абсолютно компоненты в OnPush
=========
результаты))))
матириал таблица стала таки загружаться быстрее на 200 айтемах, с 3.5 - 8сек сек теперь 1.5 - 2.5 сек на самом тяжелом отображении. на остальных так то летает - ничего на заметно. НО:
1) фриз предзагрузки таблицы все равно присутствует - наверное ребята разрабы в матириал таблице при сборке ячеек - их таки впиливают туда без учета RAF, и гдето фризят рендеринг того же mat-tab-ink анимации))) а также, насколько я предполагаю, у них (команды гугл занимающейся таблицей) обьект MatDataSource "не вставляется единожды" в DOM как ViewContainerRef типа через for, что в принципе было бы наверное правильно, но проверить точно я не могу, так что тут моя експертиза начинает шататься)))
иследуя этот идиотизм, могу сказать, что когда матириал таблица пытается с 10 различными колонками отрендерить 200 строк, что приводит к рендерингу итерируемых 1400 ячеек - фактически пришел к выводу, что самое идеальное решение, не просто вынести калькуляцию к примеру, и выбор темплейты ячейки судя из типа колонки, но вообще кардинально поменять подход - генерировать темплейты в ts засовывая их вручную своим for в виртуальный контейнер ViewContainerRef, и потом аппендить его одним махом в нужную контейнер-темплейту, чем убрать лишний скриптинг в самой таблице. но не нашел - куда именно одним махом потом воткнуть этот ViewContainerRef в сам DataSource. уткнувшись в лимиты mat-table - думаю теперь, стоит ли писать свою таблицу, где смогу одним движением вставлять в DOM все 1400+ ячеек х10 быстрее изза сбора их в ts, или оставаться при том результате что есть...
если вдруг у кого есть идеи или мысли - буду рад пообщаться))
источник

IF

Igor Filippov in Angular Kyiv
Зачем сразу рендерить 200 айтемов?
источник

IK

Igor Kurkov in Angular Kyiv
заказчику надо)))))))) он вообще по 500 любит ставить пагинатор)) я бы не расписывал бы, кейса бы не было
источник

AO

Alex Orlovsky in Angular Kyiv
виртуал скролл под кейс не подходит? или не пробовал?
источник

IK

Igor Kurkov in Angular Kyiv
ломает высоту контейнера таблицы - т.к. иногда данные прилетают разного обьема же, не всегда только 200, и местами подтормаживает, юзабилити хромает. может не достаточно долго его пытался адаптировать, хз
источник

IK

Igor Kurkov in Angular Kyiv
там же не просто строки и ячейки, там matDef-ы))) итерация под капотом вся
источник

DG

Danil Gudz in Angular Kyiv
А какой функционал таблицы такой используется что вообще взят mat-table? Если свой компонент таблицы сделать и виртуал скроллом итерировать?
источник

AO

Alex Orlovsky in Angular Kyiv
мы юзали не дефолтный, а вот этот, он показывал более хорошие результаты по производительности. плюс есть вариант с разными по высоте строками

https://www.npmjs.com/package/ngx-virtual-scroller
источник

IK

Igor Kurkov in Angular Kyiv
Ну вот сам думаю что смысл вообще в мат-таблице))) чет зациклился наверное на ней, вера чтоли в матириал.. вместо рефакторинга быстрее бы напилил уже свою таблицу и там бы кастомизация была бы любая. Согласен
источник

IK

Igor Kurkov in Angular Kyiv
Надо глянуть, но я по чесноку устал ее вертеть уже)))) там дело больше не в скролле а в моменте передачи массива данных, который дает фриз и делей
источник

DG

Danil Gudz in Angular Kyiv
Там надо просто скроллер заимплементить свой, я делал таблицу свою с expand фичей строки, и виртуал скрол от cdk использовал, то описал логику какой рендж элементов типа рендерить и четк
Я не сравнивал производительность конечно с ngx
источник

IK

Igor Kurkov in Angular Kyiv
Вот тоже есть експанд в некоторых случаях))) блин, ну ок, мож таки поковыряюсь еще. А сколько выводили елементов в окне виртуал скролла - те же 20 при обьеме пагинатора 200+?
источник

DG

Danil Gudz in Angular Kyiv
Ну кстати при виртуал скрол подходе надо фиксировано выставлять высоту таблицы, то в моем случае в приложении у нас почти все таблицы аля 100vh, ну флексом по высоте растягивается, у меня в приложении инфинит пагинация, типа скролишь на след страницы, то виртуалскрол рисует то что во вьюпорт попадает, но с expand функционалом там надо свой кастомный сервис провайдить для определения кого рендерить, потому что если проскролил на 10ю страницы и зажкспандил 5 строк на 1й страницы то там нужно офсет этот раскрытых строк учитывать, этот подсчёт надо самому делать типа
источник

DT

Denchik Tymokhin in Angular Kyiv
Если  не секрет то что за тулза для чека фриза?
источник
2021 June 06

IK

Igor Kurkov in Angular Kyiv
глаза))) разные количества данных грузятся, невооруженным взглядом видно фриз mat-ink-bar, есть даже ишью гдето на эту тему
источник