Ātri aprēķini
Power Fx izteiksmes ir jaudīgas, un tās automātiski veic daudzus fona aprēķinus. Lai gan Power Fx automatizē daudzas lietas jūsu vietā, ir iespējams precizēt aprēķinus, lai tie būtu pēc iespējas ātrāki.
Datu izgūšana
Necenzētas kolonnas atlases izmantošana
Necenzētas kolonnas atlases (Explicit Column Selection — ECS) līdzeklis pēc noklusējuma ir iespējots visām jaunajām programmām. Ja tas nav iespējots jūsu lietotnei, iespējojiet to. ECS automātiski samazina izgūto kolonnu skaitu līdz tikai tām, kas tiek izmantotas lietojumprogrammā. Ja ECS nav iespējots, iespējams, izgūstat vairāk datu, nekā nepieciešams, kas var ietekmēt veiktspēju. Reizēm, kad programma izvelk datus, izmantojot kolekcijas, kolonnas sākotnējā izcelsme vai avots var tikt zaudēts. Mēs nezinām, vai tas tiek izmantots, un mēs to atmetam, izmantojot ECS. Parasti varat piespiest ECS strādāt ar trūkstošu kolonnu, izmantojot PowerFx izteiksmi ShowColumns pēc kolekcijas atsauces vai izmantojot to vadīklā.
Rūpīgi izmantojiet attēlus galerijās, tabulās un veidlapās
Izmantojiet Dataverse galeriju un tabulu attēlu sīktēlu versijas. Dataverse sīktēli ir mazi par aptuveni 1 kilobaitu un tiek glabāti kā ieraksta daļa, un tie ir noderīgi un ātri, lai tos parādītu vadīklās, kurās tiek rādītas kolekcijas. Visām pārējām attēlu atsaucēm, tostarp visiem SharePoint attēliem, ir nepieciešams atsevišķs zvans, un tās nedrīkst novietot uz galerijas vai galda. Ievietojiet attēlus, kuriem nepieciešams atsevišķs zvans uz detalizētām veidlapām. Apsveriet iespēju nekad nerādīt pilnu attēlu pēc noklusējuma. Pilni detalizēti attēli var būt noderīgi un svarīgi lietotājiem. Tomēr šos attēlus var padarīt pieejamus lietotājiem, veicot nepārprotamu lietotāja darbību, piemēram, pogu vai navigāciju uz atsevišķu lapu. SharePoint ir virkne vidēja izmēra attēlu, kurus varat izmantot veidlapā, kas ir īsāka par pilnu attēlu. Dataverse ir tikai divi izmēri: sīktēls un pilns.
Aprēķini
Formulu sadalīšana, izmantojot App.formula
App.formulas un nosaukto formulu izmantošana var palīdzēt samazināt programmas ielādes ātrumu un lapas navigāciju, jo tā ļauj Power Fx izlemt, kad novērtēt formulu. Tas nozīmē, ka tas nav obligāti jānovērtē OnStart. Turklāt nosauktās formulas parasti var palīdzēt arī ātrumam. Jo īpaši, ja jums ir garš skripts, tā sadalīšana nosauktās formulās ļauj veikt efektīvākus aprēķinus, kā arī Power Fx var plānot darbu un iespējot atkārtotu izmantošanu. Papildinformāciju skatiet sadaļā Programmu formulas.
Vienlaicīgas lietošanas izmantošana
Izmantojiet funkciju Concurrent , lai atļautu vienlaikus izpildīt formulas. Uzmanīgi izvēlieties, kur tiek izmantota vienlaicīga. Tas var nodrošināt nelielu ātrumu, taču, ja izmantojat vienumus, kas ir atkarīgi viens no otra, tas var izraisīt laika un ierobežošanas problēmas.
Atlieciet būtiskus atjauninājumus uz nebloķējošu lietotāja saskarnes solis
Lielu datu avots atjauninājumu pabeigšana var aizņemt kādu laiku. Bet lietotāji sagaida, ka lietotāja interfeiss viņiem ātri atgriezīs kontroli. Uzdevumi var būt secīgi, ja atjaunināšana ir jāpabeidz, pirms lietotājs var veikt citas darbības, vai asinhroni (atjauninājums var tikt pabeigts atsevišķi no lietotāja darbībām).
Laikietilpīga sinhrona uzdevuma piemērs ir vietas apstiprināšana koncertā. Lielākajai daļai laikietilpīgo sinhrono uzdevumu, piemēram, šim, ir ierasts izveidot progresa joslu. Šis lietotāja interfeiss faktiski bloķē lietotāju, bet nodrošina, ka uzdevums ir pabeigts pirms citu lietotāja saskarnes elementu atjaunināšanas. Šī pieeja var nedarboties jūsu lietojumprogrammā. Uzņēmumi parasti veic ilgākus secīgus soļus kā skaidru uzņēmējdarbības solis. Jūs esat apstiprināts doties nākamajā solis, izmantojot biznesa procesa signālu. Piemērs ir apstiprinājums. Apstiprinājums var tikt saņemts ātri vai var aizkavēties. Lietotāja saskarnē varat norādīt, ka process ir pabeigts vairākos veidos. Varat iespējot pogu, rādīt ziņojumu, sūtīt e-pastu vai iespējot lietotāja saskarnes daļu, piemēram, izvēlnes elementu.
Asinhronā uzdevuma piemērs ir pasūtījuma pabeigšana. Klients atjaunina pasūtījumu grozu, veic pasūtījumu un pēc tam veic pasūtījumu. Bet vairākiem atjauninājumiem ir jānotiek, pirms klientam tiek piešķirts apstiprināts nosūtīšanas datums. Šajā piemērā nosūtīšanas datums nav kaut kas tāds, ko varat viegli norādīt uzreiz. , varat atlikt šo atjauninājuma daļu uz e-pasta ziņojumu, kas klientam tiks nosūtīts vēlāk.
Sinhroniem uzdevumiem UI bloķēšanas uzdevumiem bieži tiek izmantots kods Power Apps . Piemēram, kods gaida, līdz tas saņem atgriezto vērtību, un pēc tam atbrīvo progresa joslu. Vislabāk ir samazināt šāda veida situācijas. Taču uzdevumiem, kuros tiek izmantots necenzēts biznesa solis vai asinhroniem uzdevumiem, uzdevuma pabeigšanai, piemēram, darbībai, saglabātajai Dataverse procedūrai vai Power Automate plūsmai, parasti tiek izmantots ārējs pakalpojums.
Atbilstoši novietojiet "ForAll"
Ja jums ir izteiksme ar ForAll un collect, kas izskatās šādi:
ForAll(x, Collect(y, { … }))
Pēc tam apgrieziet to otrādi
Collect(y, ForAll(x, { … }))
Pirmajā modelī jebkurš atkarīgs noteikums par kolekciju y tiek paziņots par izmaiņām un novērtēts katrai x iterācijai. Otrajā modelī šie noteikumi tiek vērtēti tikai vienu reizi.
Apsveriet iespēju izvairīties no atsaucēm uz Gallery.AllItems
Strādājot ar Power Apps, vislabāk ir izvairīties no atsauces uz Gallery.AllItems, ja vien jums nav nepieciešamas lietotāja vērtības. Tas ir tāpēc, ka katru reizi, kad tiek lasīti AllItems, tiek ģenerēta jauna izvades tabula. Tā vietā izmantojiet Gallery.AllItemsCount, ja vēlaties uzzināt, cik daudz vienumu ir ielādēti.
Uzmanīgi izmantojiet Gallery.TemplateSize
Lai nodrošinātu, ka galerijas ar elastīgu augstumu tiek atveidotas pareizi, ir svarīgi iestatīt saprātīgu noklusējuma izmēru. Sākotnēji mēs cenšamies atveidot pēc iespējas vairāk rindu, pamatojoties uz šo vērtību. Ja iestatāt noklusējuma lielumu uz 0, mēs cenšamies atveidot visu, izņemot dažus malu gadījumus. Ja izmantojat formulu, noteikti iestatiet minimālo vērtību, kad formula varētu novērtēt vērtību 0. Piemēram, jūs varētu izmantot Max (20, varFoo + rectBar.Height). Tādā veidā, ja varFoo un rectBar.Height vēl nav pieejami, mēs vismaz izmantojam saprātīgu vērtību 20.
Piezīme DelayOutput, īpaši meklēšanai
Pirms izmaiņu noteikšanas ir viena sekundes aizkave, kas ļauj pabeigt rakstīšanu, nevis noteikt izmaiņas katrai rakstīšanai.