Size: a a a

Angular - русскоговорящее сообщество

2021 March 21

ЕУ

Евгений Удалов... in Angular - русскоговорящее сообщество
зы. первоначальный рендеринг на 10к все равно потормозит
источник

OS

Oleg Safonov in Angular - русскоговорящее сообщество
Влад
К сожалению нет, это приложение будет работать оффлайн, поэтому всегда загружает все, что есть в БД
Что именно тормозит в итоге, рендер или какие то алгоритмы внутри? TrackBy, OnPush юзаете?
источник

P

Proto in Angular - русскоговорящее сообщество
Oleg Safonov
trackBy используете? OnPush?
Думается это в данном случае не поможет. Объект же  каждый раз новый
источник

OS

Oleg Safonov in Angular - русскоговорящее сообщество
Proto
Думается это в данном случае не поможет. Объект же  каждый раз новый
Неважно, если есть способ идентифицировать обьекты
источник

OS

Oleg Safonov in Angular - русскоговорящее сообщество
Proto
Думается это в данном случае не поможет. Объект же  каждый раз новый
Ну тут вопрос, сколько сразу рисуется элементов? Уберите ненужные перерисовки и ограничьте количество
источник

В

Влад in Angular - русскоговорящее сообщество
А у меня вот такая структура:
В компоненте категории есть компонент с контентом, и в нем есть еще компонент с созданием новой записи

И вот выборку я делаю в компоненте с контентом.  Таким вот способом:
this.ArtifactsService.list.subscribe((data) => {

   this.artifactList = [];

   for (let key in data) {
       if(
           data[key].artifact_parent_id == this.parentArtifactId &&
           data[key].artifact_type == 2
       ) {
           this.artifactList.push(data[key]);

       }
   }

   this.sortAsc();
});

И когда создаю новую запись, то ее нужно поместить в artifactList, при чем в нужное место, потому что сортировка могли изменится.

Как тут оптимизировать?
источник

P

Proto in Angular - русскоговорящее сообщество
Oleg Safonov
Ну тут вопрос, сколько сразу рисуется элементов? Уберите ненужные перерисовки и ограничьте количество
Ну это не ко мне ). Но я бы пагинацию прикрутил.
источник

OS

Oleg Safonov in Angular - русскоговорящее сообщество
Proto
Ну это не ко мне ). Но я бы пагинацию прикрутил.
Сорян) я промахиваюсь)
источник

OS

Oleg Safonov in Angular - русскоговорящее сообщество
Влад
А у меня вот такая структура:
В компоненте категории есть компонент с контентом, и в нем есть еще компонент с созданием новой записи

И вот выборку я делаю в компоненте с контентом.  Таким вот способом:
this.ArtifactsService.list.subscribe((data) => {

   this.artifactList = [];

   for (let key in data) {
       if(
           data[key].artifact_parent_id == this.parentArtifactId &&
           data[key].artifact_type == 2
       ) {
           this.artifactList.push(data[key]);

       }
   }

   this.sortAsc();
});

И когда создаю новую запись, то ее нужно поместить в artifactList, при чем в нужное место, потому что сортировка могли изменится.

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

Чтоб в компоненте не перебирать их
источник

В

Влад in Angular - русскоговорящее сообщество
Oleg Safonov
Оптимизируйте хранение в сервисе. Денормализуйте данные мб, сделайте там хранение по ключам, например

Чтоб в компоненте не перебирать их
спасибо за хороший совет 👍
источник

OS

Oleg Safonov in Angular - русскоговорящее сообщество
Влад
спасибо за хороший совет 👍
Ну и наверное не стоит те же сортировки делать в компоненте. Лучше вообще всю работу с данными в сервис убрать, тем более сложная такая ситуация)
источник

🏡K

🏡 ILshat Khamitov in Angular - русскоговорящее сообщество
Влад
А у меня вот такая структура:
В компоненте категории есть компонент с контентом, и в нем есть еще компонент с созданием новой записи

И вот выборку я делаю в компоненте с контентом.  Таким вот способом:
this.ArtifactsService.list.subscribe((data) => {

   this.artifactList = [];

   for (let key in data) {
       if(
           data[key].artifact_parent_id == this.parentArtifactId &&
           data[key].artifact_type == 2
       ) {
           this.artifactList.push(data[key]);

       }
   }

   this.sortAsc();
});

И когда создаю новую запись, то ее нужно поместить в artifactList, при чем в нужное место, потому что сортировка могли изменится.

Как тут оптимизировать?
В пайпе делай, filter и map больше чем в 100 раз быстрее будет
источник

В

Влад in Angular - русскоговорящее сообщество
Спасибо за советы, пайпы еще изучить надо, пока не знаю что это такое, я только начал изучать ангуляр)

А еще подскажите как измерять время выполнения участка кода?
Сейчас я делаю перед началом console.time и после console.timeEnd, это покажет верное время?
источник

🏡K

🏡 ILshat Khamitov in Angular - русскоговорящее сообщество
Да
источник

🏡K

🏡 ILshat Khamitov in Angular - русскоговорящее сообщество
https://immutable-js.github.io/immutable-js/
Ещё вот это можно заиспользовать
источник

🏡K

🏡 ILshat Khamitov in Angular - русскоговорящее сообщество
Там тоже можно затюнить так что всякие фильтрации будут быстрее чем в жс
источник

🏡K

🏡 ILshat Khamitov in Angular - русскоговорящее сообщество
Или поиск
источник

В

Влад in Angular - русскоговорящее сообщество
🏡 ILshat Khamitov
https://immutable-js.github.io/immutable-js/
Ещё вот это можно заиспользовать
спасибо
источник

P

Proto in Angular - русскоговорящее сообщество
🏡 ILshat Khamitov
В пайпе делай, filter и map больше чем в 100 раз быстрее будет
Это конкретно пайп такой эффект даёт ?
источник

🏡K

🏡 ILshat Khamitov in Angular - русскоговорящее сообщество
Proto
Это конкретно пайп такой эффект даёт ?
Не, фор медленнее чем другие штуки типа for each map reduce filter
источник