html - IONIC: Laster spinner mens brukergrensesnittet fullfører gjengivelsen


Jeg har omtrent 1000 UI-komponenter å rendre, som inkluderer ion-range, ion-select med JSON-data. Jeg tilordner JSON-objektet mitt til variabelen og renderer komponentene i HTML med *ngFor.

For eksempel :

In .ts :
let jsonArray=this.jsonData;

In .HTML :
<div *ngFor="let array of jsonArray">
// MY COMPONENTS
</div>

Nå får jeg data i variabel ion på mindre enn 1 ms. Men komponentene mine bruker så mye tid på å gjengi, og det føles som om skjermen har fryst.

Problem 1: Kan vi redusere denne gjengivelsestiden ved å bruke noe annet enn denne tilnærmingen?

Problem 2: Kan vi legge til en spinner eller lasteindikator til den er ferdig med rendering?

PS.: Jeg nevner her at jeg ikke har noen problemer med å hente dataene mine slik de er fra lokal sqliteDB. Brukergrensesnittet mitt setter seg fast bare når det rendrer de 1000 komponentene.

OPPDATERING av .ts-fil

onSelect(dbId) {
    this.dbService.getData(dbId).then(data => {
    this.toDisplayArray=data.set;
  })
}

Oppdatering av .HTML-fil

<ion-select interface='popover' (ionChange)='onSelect($event.detail.value)'>
      <ion-select-option *ngFor="let set of deviceList; let i of index" value="{{set.Id}}">
        {{set.name}}</ion-select-option>
    </ion-select>

    <div *ngFor="let set of toDisplayArray;let i = index">
    <div *ngIf="set.type==="range">
    <range [id]="set.id" [title]="set.title"></range>
    </div>

    <div *ngIf="set.type==="select">
    <select[id]="set.id" [title]="set.title"></select>
    </div>

    <div *ngIf="set.type==="both">
    <range-select [id]="set.id" [title]="set.title"></range-select>
    </div>
    </div>

så range, select og range-select er selektorer for mine barnekomponenter hvor jeg sender data gjennom input og output.