Kopīgot, izmantojot


Lietotņu vai lapu ielādes optimizēšana, lai nodrošinātu maksimālu veiktspēju

Viens no galvenajiem faktoriem, kas ietekmē lietotāja uztveri par lietotni, ir tas, cik ātri tā atveras un kļūst funkcionāla. Tāpēc, veidojot performantu lietotni, ir ļoti svarīgi noteikt šī mērķa prioritāti. Lai sasniegtu optimālu lietotņu veiktspēju, ir trīs galvenās jomas, kurām jāpievērš uzmanība:

  1. Ātra datu ielāde
  2. Efektīvi aprēķini
  3. Nepieciešamo resursu samazināšana

Katrai no šīm jomām ir vairāki kopīgi anti-modeļi.

Ātra datu ielāde

Izpildiet šīs vadlīnijas, lai panāktu ātru datu ielādes lietotnes.

Izvairieties no tiešas kolekcijas aizpildīšanas ar lielu datu apjomu

Dažreiz autori izmanto ClearCollect(), lai kopētu datus no servera uz kolekciju savā lietotnē. Šī prakse ir risinājums, lai novērstu deleģēšanas ierobežojumus avotā vai tāpēc, ka viņi plāno izmantot lietotnē esošās kolekcijas citiem mērķiem. ClearCollect() izmantošana var potenciāli palielināt lietotnes ātrumu, kad kolekcija tiek izmantota vēlāk. Tomēr, to īstenojot, ir svarīgi ievērot piesardzību. ClearCollect izmantošana šādā veidā var izraisīt lēnāku lietotņu ielādes laiku vai navigāciju starp lapām. ClearCollect() ir jāpabeidz, lai galerijā vai tabulā varētu skatīt datus. Šī solis var aizņemt ilgu laiku, ja ir daudz datu vai ja šo pieeju izmantojat pārāk daudziem datu avotiem. Kolekcijas vislabāk izmantot situācijās, kad dati ir mazi un jums ir jāveic daudzi aprēķini par kolekciju. Piemēram, labs kolekciju izmantojums ir tiešsaistes pasūtījumu grozs. Klients var atjaunināt un noņemt preces vairākas reizes, pirms izvēlas veikt pasūtījumu. Turklāt jūs varat papildināt kolekciju ar vairāk datu vienumiem, piemēram, iespējamām atlaidēm, svarīgākajiem notikumiem utt. Datiem, kas ir "tikai lasāmi", ir jāpiekļūst vietēji, neiekļaujot tos kolekcijā.

Apsveriet iespēju izvairīties no zvaniem Power Automate , lai aizpildītu kolekciju

Šī problēma ir neliela iepriekšējās sadaļas variācija. Dažreiz autori izmanto Power Automate arī, lai aizpildītu savu kolekciju Power Apps. Uzreiz ir jāmaksā aptuveni 0,6 sekunžu veiktspēja Power Automate. Power Automate ir patstāvīgi jāuzsāk katru reizi, kad tas tiek izsaukts. Tam ir jāpiešķir atmiņa, jāatrodas ar pareizajiem komponentiem un jābūt gatavam darbībai. Tāpat kā iepriekš minētajos ieteikumos, viens vai divi zvani uz Power Automate to, iespējams, nav problēma atkarībā no jūsu lietotnes. Bet gandrīz vispārēji lietotnes ar vissliktāko veiktspēju pārmērīgi izmanto šo pieeju. Veiktspējas izmaksas var ātri palielināties un sabojāt lietotnes veiktspēju.

Neizmantojiet SaveData() un LoadData() kā pilnu bezsaistes scenāriju

Daži autori izmanto ClearCollect() un pēc tam SaveData(), lai glabātu datus vispārīgai lietošanai bezsaistē. Varat izmantot SaveData(), lai saglabātu kolekciju savā ierīcē, un LoadData(), lai to ielādētu, kad esat bezsaistē. Tomēr šī pieeja nav ieteicama gadījumos, kad ir liels datu apjoms vai ja dati ir sarežģīti. Tas padara jūsu lietotni lēnāku, jo tai ir jāgaida ClearCollect() pabeigšana, pirms tā var parādīt datus. SaveData() un LoadData() ieteicams izmantot tikai maziem un vienkāršiem datu scenārijiem, piemēram, preferencēm un īsiem sarakstiem. Labāks veids, kā strādāt ar lielu bezsaistes datu apjomu, ir izmantot bezsaistes līdzekli, Power Apps ar kuru darbojas Dataverse. Šis līdzeklis var efektīvāk apstrādāt lielākus un sarežģītākus datus.

Necenzētas kolonnas atlases izmantošana

Necenzēta kolonnu atlase pēc noklusējuma ir ieslēgta. Tomēr daži autori šo funkciju izslēdz. Problēma ir tā, ka, ja ir ieslēgta necenzēta kolonnu atlase (ECS), kolonnas dažreiz netiek izgūtas no datu avots, ja dati pirmo reizi tiek izgūti kolekcijā. Tā kā dažās tabulās var būt daudz kolonnu, ECS automātiski aprēķina, kuras kolonnas ir jāizgūst, pamatojoties uz to lietojumu vadīklās (piemēram, galerijās un veidlapās). Tā kā dažās tabulās var būt daudz kolonnu, lejupielādes lieluma samazināšana var paātrināt veiktspēju. Dažās tabulās var būt simts kolonnu vai vairāk. Ja jūsu programmā ir jāizmanto tikai 10 kolonnas un jūs nolaižat visas kolonnas no 100 kolonnu tabulas, jūs samazināsit desmit reizes vairāk datu, nekā jums faktiski nepieciešams.

Lielākā daļa problēmu rodas, ievietojot datus kolekcijās. Ja vadīklā ir tieša atsauce uz kolonnu, ECS darbojas labi. Un ECS parasti darbojas kolekcijām. Tomēr kolonnu rinda reizēm tiek zaudēta, kad dati pārvietojas pa kolekcijām un mainīgajiem. Un tā Power Apps var zaudēt informāciju par kolonnu, kas tai būtu jāatgūst. Lai atrisinātu šo problēmu, varat piespiest Power Apps "atcerēties" kolonnu, ShowColumns izmantojot funkciju. Piemēram:

    ClearCollect(
        MyColTable, 
        ShowColumns(Filter(BankAccounts, AcountNo = 32),
        "Col1", 
        "Col2", 
        "Col3")
    );

Kur Col1,, un Col2 ir kolonnas, kuras, jūsuprāt, tiks izgūtas no datu avots (piemēram, datu avots Col3 Account ).

Vai arī veidlapai varat pievienot slēptu vadīklu, kas atsaucas uz kolonnu. Tas liek Power Apps "atcerēties" kolonnu.

Ātri aprēķini

Ātri (vai efektīvi) aprēķini paši par sevi ir veiktspējas mērķis. Papildinformāciju skatiet sadaļā Ātri (efektīvi) aprēķini. Tomēr ir daži izplatīti anti-modeļi, kas var ietekmēt arī lietotņu slodzi, un tāpēc mēs tos šeit apspriežam. Tālāk ir sniegts saraksts ar optimizācijām, kas jāņem vērā un kas var ietekmēt lietojumprogrammu palaišanu vai lapas navigāciju.

App.Formulas izmantošana

Vēsturiski daudzi autori ir ievietojuši lielu skaitu aprēķinu OnStart. Ievietojot izteiksmi OnStart, tā liek Power Apps palaist šo izteiksmi tieši tad, kad programma tiek startēta, un pirms visa pārējā. Tomēr, ieviešot App.Formulas, varat ļaut Power Apps izlemt, kad palaist izteiksmi. Power Apps var palaist formulu "Tieši laikā", pirms tā ir nepieciešama. Papildinformāciju skatiet sadaļā Programmu formulas. Izmantojiet App.Formulas, lai sadalītu formulu gabalos, kas Power Apps var efektīvāk sakārtot izpildi.

Vienlaicīgas lietošanas izmantošana

Izmantojiet funkciju Concurrent, lai atļautu vienlaikus izpildīt formulas. Parasti šo funkciju izmanto, lai aizpildītu kolekcijas, jo tā ļauj veikt paralēlu izpildi. Lai gan tas var nodrošināt nelielu ātrumu, daudzu datu avotu pievienošana var izraisīt laika un ierobežošanas problēmas.

Uzlabotās veiktspējas izmantošana slēptajām vadīklām

Ja iespējots pēc noklusējuma visās jaunajās programmās, kas izveidotas kopš 2022. gada decembra, netiek atveidota vadīkla, Power Apps kas sākotnēji nav redzama.

Minimizējiet nepieciešamos resursus

Samaziniet resursus, kas nepieciešami lietotnes vai ekrāna palaišanai. Šīs pūles ietver lietotnei vai ekrānam nepieciešamo resursu rūpīgu noteikšanu vai sadalīšanu. Zemāk ir vairākas pieejas, kas jums palīdzēs.

Izmantojiet zemas atkarības sākuma ekrānu un likvidējiet neizmantotos ekrānus.

Izmantojiet zemas atkarības pirmo ekrānu, piemēram, sveicienu savā lietojumprogrammā. Izveidojiet ekrānu, kurā netiek ielādēta galerija, tabula vai atsauces dati. Tas pārvalda lietotāja uztveri par ātrumu un ļauj Power Fx pareizi aizkavēt dažus aprēķinus uz vēlāku laiku. Ja jums ir neizmantoti ekrāni, noņemiet tos.

Saglabājiet zemu starpekrānu atkarību starp ekrāniem

Starplapu atsauces liek ielādēt papildu lapas, izmantojot atsauces, piemēram, atsauču vadīklas lapās un ievietošanu kolekcijās. Dažas atsauces var būt neizbēgamas. Ja iespējams, centralizējiet bieži lietotās atsauces uz vienu lappusi, lai tiktu ielādēta tikai lapa.

Apsveriet iegulto multividi

Autori dažreiz iegulst multividi savās lietotnēs, lai nodrošinātu ātru ielādi. Ja jums ir iegults datu nesējs, apsveriet, vai to izmantojat vai nē. Ja nē, izdzēsiet to. Ja esat iegulis .png failu, apsveriet iespēju aizstāt mazāku .svg failu. Ņemiet vērā, ka, ja izmantojat .svg, .svg fontam ir jābūt klienta datorā. Apsveriet iegulto multivides izšķirtspēju. Vai tas ir pārāk augsts ierīcei, kurā tas tiks izmantots?

Neaizmirstiet App.StartScreen

Ja izmantojat App.StartScreen, pārliecinieties, vai pirmais ekrāns ir tukšs. Lietotnes pašreizējā iepakojuma dēļ pirmais loģiskais ekrāns vienmēr ir saistīts ar lietotnes init loģiku un tiks inicializēts neatkarīgi no tā, vai mēs kādreiz uz to virzīsimies.

Apsveriet iespēju sadalīt lietotni

Ja jūsu lietotne ir liela, apsveriet iespēju to sadalīt mazākās lietotnēs. Ja funkcionalitāte ir pietiekami atsevišķa dažādās lietotnes daļās, šī pieeja var darboties. Šajā scenārijā jūs izveidojat faktisku atsevišķu programmu, kuru palaižat ar parametriem, kas ietver kontekstu no pirmās vai vecākelements programmas.

Ieteikumi

Lai sasniegtu ātras programmas un lapas sākšanas mērķi, apsveriet šādus jautājumus un ieteikumus:

  1. Vai pirmajā ekrānā ielādējat daudz datu? Vai varat izmantot citu pirmo ekrānu?
  2. Vai programmas ielādes sākumā izpildāt daudzas komandas vai Power Fx izteiksmes? Vai jūs varat atlikt šīs komandas un izteicienus uz vēlāku laiku lietojumprogrammā? Iegūstiet tikai tos datus, kas jums faktiski nepieciešami, lai startētu lietotni? 1 Vai programmā App.OnStart varat konvertēt izteiksmes uz nosauktām formulām, izmantojot App.Formulas? Tas ļauj Power Fx izlemt, kad faktiski izpildīt formulu, nevis piespiest to notikt, ielādējot vai pārvietojoties notikumos.
  3. Vai varat izmantot atsevišķu Power Automate plūsmu, lai lokālajā datu krātuve izveidotu pagaidu tabulu, piemēram Dataverse , tādu, kurā apvienoti dati no dažādiem avotiem? Un pēc tam piekļūstiet šiem datiem savā Power App?
  4. Vai biznesa procesa sākšanai varat izmantot servera aktivizētas darbības, nevis izsaukt Power Automate plūsmu?
  5. Vai serverī var izveidot skatu, kas pievienojas datiem jūsu vietā?
  6. Ja vēlaties savā programmā izmantot bezsaistes datus, vai varat izmantot Power Apps bezsaistes līdzekli, kas darbojas ar Dataverse? Ja jūsu dati nav iekļauti Dataverse, vai varat tos pārvietot uz turieni?