Как я могу повысить производительность ngx-datatable с большими объемами записей?

#c# #angular #typescript #http #asp.net-core-webapi

Вопрос:

Я использую ngx-datatable для загрузки больших объемов записей. Однако чем больше объем, тем больше времени это занимает. Я где-то читал, что вы можете ускорить его, отсортировав, а затем назначив источнику данных. Не мог бы кто-нибудь, пожалуйста, помочь мне найти лучший способ улучшить производительность этого процесса?

recipient.component.html

 </ngx-datatable><ngx-datatable
    #table
    class='data-table'
    [columns]="columns"
    [columnMode]="'force'"
    [headerHeight]="37"
    [footerHeight]="50"
    [rowHeight]="38"
    [reorderable]="false"
    [limit]="7"
    (activate)="onActivate($event, editContent)"
    [rows]='getRecipients()'>
</ngx-datatable>
 

получатель.компонент.ts

 recipients: Recipient[] = [];
ngOnInit() {
    this.deleted_recipients = [];
    this.adhoc.getAdhocDetails(this.adhocForm.get('create.campaignNo').value).subscribe(
      x => this.seedRecipients(x),
      err => this.general.error(err)
    );
  }

    seedRecipients(csvRecordsArr: Recipient[]) {
          for (let y = 0; y < csvRecordsArr.length; y  ) {
            const recipient = csvRecordsArr[y];
            recipient.status = this.getStatus(recipient);
            this.recipients.push(csvRecordsArr[y]);
          }
          this.recipients = [...this.recipients];
          this.origRecipients = JSON.stringify(this.recipients);
          this.checkStatus();
        }

getRecipients(): Recipient[] {
      return this.recipients;
    }
 

сервис.ts

 getAdhocDetails(campaignNo: string): Observable<Recipient[]> {
        return this.http.get<Recipient[]>(this.baseUrl   'getAdhocDetails/'   campaignNo).map(res => res);
      }
 

Класс API

     public async Task<IEnumerable<AdhocRewardInfo>> getAdhocDetails(string CampaignNo) {
                 //this._context.Database.SetCommandTimeout(200);
                 var details = await _context.AdhocRewardInfo.Where(e => e.CampaignNo == CampaignNo).ToListAsync();
                

 return details;
         }
 

Комментарии:

1. Должно ли это быть в обзоре кода ?

2. @Elikill58 Я никогда не знал об этом, спасибо

3. Нет проблем 🙂 и да, я думаю, что они будут более точными в обзоре кода se

4. Перед публикацией в Обзоре кода обязательно прочитайте руководство по обзору кода для пользователей переполнения стека , так как там некоторые вещи делаются по — другому-например, в заголовках вопросов должно быть просто указано, что делает код, так как всегда возникает вопрос: «Как я могу это улучшить?». Убедитесь, что код работает правильно; по возможности включите модульные тесты. Скорее всего, вы получите некоторые предложения по повышению эффективности, упрощению чтения и лучшей проверке.

5. @TobySpeight Спасибо вам за ваш совет