Kopīgot, izmantojot


Ā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.

Būtisku atjauninājumu atlikšana uz lietotāja saskarnes nebloķēšanas darbību

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ākas secīgas darbības kā skaidru uzņēmējdarbības soli. Jūs esat apstiprināts veikt nākamo darbību, 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, kas izmanto tiešu biznesa soli vai asinhronus uzdevumus, uzdevuma pabeigšanai, piemēram Dataverse , darbībai, iekļautajai procedūrai Power Automate vai plūsmai, parasti izmanto ārēju pakalpojumu.

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.

Pirms izmaiņu noteikšanas ir viena sekundes aizkave, kas ļauj pabeigt rakstīšanu, nevis noteikt izmaiņas katrai rakstīšanai.