Rýchle výpočty

Power Fx výrazy sú výkonné a mnohé výpočty na pozadí robia za vás automaticky. Zatiaľ čo Power Fx automatizuje veľa vecí za vás, je možné doladiť svoje výpočty tak, aby boli čo najrýchlejšie.

Načítanie údajov

Použite Explicitný výber stĺpcov

Funkcia Explicit Column Selection (ECS) je predvolene povolená pre všetky nové aplikácie. Ak nie je pre vašu aplikáciu povolená, mali by ste ju povoliť. ECS automaticky znižuje počet načítaných stĺpcov len na tie, ktoré sa používajú v aplikácii. Ak ECS nie je povolené, možno získavate viac údajov, ako potrebujete, čo môže ovplyvniť výkon. Príležitostne, keď aplikácia sťahuje údaje prostredníctvom kolekcií, môže dôjsť k strate pôvodného pôvodu alebo zdroja stĺpca. Nevieme, či sa používa, a púšťame to pomocou ECS. ECS môžete zvyčajne prinútiť pracovať pre chýbajúci stĺpec pomocou výrazu PowerFx ShowColumns po odkaze na kolekciu alebo jeho použitím v ovládacom prvku.

Obrázky v galériách, tabuľkách a formulároch používajte opatrne

Pre galérie a tabuľky použite Dataverse miniatúrne verzie obrázkov. Dataverse miniatúry sú malé, asi 1 kilobajt a sú uložené v riadku ako súčasť záznamu a sú užitočné a rýchle na zobrazenie na ovládacích prvkoch, ktoré zobrazujú kolekcie. Všetky ostatné odkazy na obrázky vrátane všetkých SharePoint obrázkov vyžadujú samostatný hovor a nemali by sa umiestňovať do galérie ani na stôl. Umiestnite obrázky, ktoré vyžadujú samostatné volanie, do podrobných formulárov. Zvážte, že sa predvolene nezobrazuje celý obrázok. Úplné podrobné obrázky môžu byť pre používateľov užitočné a dôležité. Tieto obrázky však môžete používateľom sprístupniť prostredníctvom explicitnej akcie používateľa, napríklad pomocou tlačidla alebo navigácie na samostatnú stránku. SharePoint má celý rad obrázkov strednej veľkosti, ktoré môžete použiť na formulár kratší ako celý obrázok. Dataverse má iba dve veľkosti: miniatúra a plná.

Výpočty

Rozdeľte vzorce pomocou App.formula

Použitie App.vzorcov a pomenovaných vzorcov môže pomôcť s rýchlosťou načítania aplikácie a navigácie na stránke, pretože umožňuje Power Fx rozhodnúť sa, kedy sa má vzorec vyhodnotiť. To znamená, že to nemusí nutne vyhodnocovať v OnStart. Navyše, pomenované vzorce môžu vo všeobecnosti pomôcť aj pri rýchlosti. Najmä ak máte dlhý skript, jeho rozdelenie do pomenovaných vzorcov umožňuje efektívnejšie výpočty, pretože Power Fx môže naplánovať prácu a umožňuje opätovné použitie. Ďalšie informácie nájdete v časti Vzorce aplikácií.

Použite súbežné

Pomocou funkcie Súbežné umožníte súčasné spustenie vzorcov. Opatrne vyberte, kde sa používa súbežné. Môže poskytnúť mierne zrýchlenie, ale ak používate položky, ktoré sú na sebe závislé, môže to spôsobiť problémy s načasovaním a škrtením.

Odložte významné aktualizácie na neblokujúci krok používateľského rozhrania

Dokončenie veľkých aktualizácií zdroj údajov môže chvíľu trvať. Používatelia však očakávajú, že používateľské rozhranie im rýchlo vráti kontrolu. Úlohy môžu byť buď sekvenčné, keď sa aktualizácia musí dokončiť, kým používateľ môže vykonať ďalšie akcie, alebo asynchrónne (aktualizácia môže byť dokončená oddelene od akcií používateľa.)

Príkladom časovo náročnej synchrónnej úlohy je potvrdenie miesta na koncerte. Pre väčšinu časovo náročných synchrónnych úloh, ako je táto, je bežné umiestniť indikátor priebehu. Toto používateľské rozhranie v skutočnosti blokuje používateľa, ale zaisťuje, že úloha je dokončená pred aktualizáciou ostatných prvkov používateľského rozhrania. Tento prístup nemusí fungovať pre vašu aplikáciu. Podniky zvyčajne spracovávajú dlhšie postupné kroky ako explicitný obchodný krok. Máte schválenie prejsť na ďalší krok prostredníctvom signálu obchodného procesu. Príkladom je schválenie. Schválenie môže prísť rýchlo alebo môže byť oneskorené. V používateľskom rozhraní môžete signalizovať, že proces je dokončený, niekoľkými spôsobmi. Môžete povoliť tlačidlo, zobraziť správu, odoslať e-mail alebo povoliť časť používateľského rozhrania, napríklad položku ponuky.

Príkladom asynchrónnej úlohy je dokončenie objednávky. Zákazník aktualizuje objednávkový košík, prepracuje svoju objednávku a potom zadá objednávku. Predtým, ako zákazník dostane potvrdený dátum odoslania, sa však musí uskutočniť niekoľko aktualizácií. V tomto príklade nie je dátum odoslania niečo, čo môžete ľahko poskytnúť hneď. , môžete túto časť aktualizácie odložiť na e-mail, ktorý bude zákazníkovi zaslaný neskôr.

V prípade synchrónnych úloh často použijete kód v Power Apps pre úlohy blokovania používateľského rozhrania. Napríklad kód čaká, kým nezíska návratovú hodnotu, a potom uvoľní indikátor priebehu. Najlepšie je tieto situácie minimalizovať. Ale pre úlohy, ktoré používajú explicitný obchodný krok alebo asynchrónne úlohy, je bežné použiť externú službu na dokončenie úlohy, ako je napríklad Dataverse akcia, uložená procedúra alebo Power Automate tok.

Umiestnite 'ForAll' vhodne

Ak máte výraz s ForAll a zbierate, vyzerá to takto:

ForAll(x, Collect(y, { … }))

Potom to prevráťte na

Collect(y, ForAll(x, { … }))

V prvom vzore je každé pravidlo závislé na kolekcii y upozornené na zmeny a vyhodnotené pre každú iteráciu x. V druhom vzore sú tieto pravidlá hodnotené iba raz.

Zvážte vyhýbanie sa odkazom na Gallery.AllItems

Pri práci s Power Apps, je najlepšie vyhnúť sa odkazovaniu na Gallery.AllItems, pokiaľ nepotrebujete používateľské hodnoty. Je to preto, že pri každom čítaní AllItems sa vygeneruje nová výstupná tabuľka. Namiesto toho použite Gallery.AllItemsCount, ak chcete len vedieť, koľko položiek je načítaných.

Opatrne používajte Gallery.TemplateSize

Ak chcete zabezpečiť, aby sa galérie s flexibilnou výškou vykresľovali správne, je dôležité nastaviť primeranú predvolenú veľkosť. Spočiatku sa snažíme na základe tejto hodnoty vykresliť čo najviac riadkov. Ak nastavíte predvolenú veľkosť na 0, pokúsime sa vykresliť všetko, okrem niekoľkých okrajových prípadov. Ak používate vzorec, nezabudnite nastaviť minimálnu hodnotu, kedy sa vzorec môže vyhodnotiť ako 0. Môžete napríklad použiť Max (20, varFoo + rectBar.Height). Týmto spôsobom, ak varFoo a rectBar.Height ešte nie sú k dispozícii, použijeme aspoň primeranú hodnotu 20.

Existuje jednosekundové oneskorenie, kým sa zmeny zistia, čo vám umožňuje dokončiť písanie namiesto zisťovania zmien pri každom písaní.