Calcule rapide

Power Fx expresiile sunt puternice și fac multe calcule de fundal pentru tine în mod automat. Deși Power Fx automatizează multe lucruri pentru dvs., este posibil să vă ajustați calculele, astfel încât să ajungeți cât mai repede posibil.

Recuperare de date

Utilizați selecția explicită a coloanei

Caracteristica de selecție explicită a coloanelor (ECS) este activată în mod implicit pentru toate aplicațiile noi. Dacă nu este activat pentru aplicația dvs., ar trebui să îl activați. ECS reduce automat numărul de coloane preluate doar la cele care sunt utilizate în aplicație. Dacă ECS nu este activat, este posibil să preluați mai multe date decât aveți nevoie, ceea ce poate afecta performanța. Ocazional, atunci când o aplicație atrage date prin colecții, descendența sau sursa inițială a unei coloane se poate pierde. Nu știm dacă este folosit și îl renunțăm folosind ECS. De obicei, puteți forța ECS să lucreze pentru o coloană lipsă utilizând expresia PowerFx ShowColumns după o referință de colecție sau utilizând-o într-un control.

Utilizați cu atenție imaginile din galerii, tabele și formulare

Folosiți Dataverse versiuni în miniatură ale imaginilor pentru galerii și tabele. Dataverse miniaturile sunt mici de aproximativ 1 kilooctet și sunt stocate inline ca parte a înregistrării și sunt utile și rapide pentru afișare pe comenzile care arată colecții. Toate celelalte referințe de imagine, inclusiv toate SharePoint imaginile, necesită un apel separat și nu ar trebui să fie plasate pe o galerie sau pe un tabel. Plasați imagini care necesită un apel separat pe formulare de detalii. Luați în considerare să nu afișați niciodată o imagine completă în mod implicit. Imaginile detaliate pot fi utile și importante pentru utilizatori. Cu toate acestea, puteți face aceste imagini disponibile utilizatorilor printr-o acțiune explicită a utilizatorului, de exemplu, un buton sau navigare către o pagină separată. SharePoint are o gamă de imagini de dimensiuni intermediare pe care le puteți utiliza pentru a fi utilizate într-un formular mai scurt decât imaginea completă. Dataverse are doar două dimensiuni: Miniatură și Complet.

Calcule

Împărțiți formulele cu App.formula

Utilizarea App.formulas și a formulelor numite poate ajuta la viteza de încărcare a aplicației și de navigare în pagină, deoarece permite Power Fx să decidă când să evalueze o formulă. Asta înseamnă că nu trebuie neapărat să-l evalueze în OnStart. În plus, formulele numite pot ajuta, în general, să accelereze. În special dacă aveți un script lung, împărțirea lui în formule numite permite calcule mai eficiente, deoarece Power Fx poate programa munca și permite reutilizarea. Pentru mai multe informații, vezi Formule aplicației.

Utilizați Concurent

Utilizați funcția Concurrent pentru a permite executarea formulelor în același timp. Alegeți cu atenție unde se folosește concurența. Poate oferi niște accelerări modeste, dar dacă rulați articole care depind unul de celălalt, poate cauza probleme de sincronizare și de accelerare.

Amânați actualizările semnificative la o interfață de utilizare neblocante pas

Actualizările mari ale unui sursă de date pot dura ceva timp. Dar utilizatorii se așteaptă ca interfața de utilizare să le redea controlul rapid. Sarcinile pot fi fie secvențiale în care actualizarea trebuie să se termine înainte ca utilizatorul să poată efectua alte acțiuni, fie asincrone (actualizarea se poate termina separat de acțiunile utilizatorului.)

Un exemplu de sarcină sincronă care necesită timp este confirmarea unui loc la un concert. Pentru majoritatea sarcinilor sincrone consumatoare de timp ca aceasta, este obișnuit să afișați o bară de progres. Această interfață de utilizare blochează de fapt utilizatorul, dar se asigură că sarcina este finalizată înainte ca alte elemente ale interfeței de utilizator să fie actualizate. Este posibil ca această abordare să nu funcționeze pentru aplicația dvs. Companiile gestionează în mod normal pașii secvențiali mai lungi ca o afacere explicită pas. Sunteți aprobat să mergeți la următorul pas printr-un semnal de proces de afaceri. Un exemplu este o aprobare. O aprobare poate veni rapid sau poate fi amânată. În interfața de utilizare puteți semnala că procesul este finalizat în mai multe moduri. Puteți activa un buton, afișa un mesaj, trimite e-mail sau activa o parte a interfeței de utilizare, cum ar fi un element de meniu.

Un exemplu de sarcină asincronă este finalizarea unei comenzi. Un client actualizează un coș de comandă, efectuează comanda și apoi plasează comanda. Dar mai multe actualizări trebuie să aibă loc înainte ca clientul să primească o dată confirmată de expediere. În acest exemplu, data expedierii nu este ceva pe care îl puteți furniza cu ușurință imediat. , puteți amâna această parte a actualizării la un e-mail care este trimis ulterior clientului.

Pentru sarcini sincrone, veți folosi adesea codul din Power Apps pentru sarcinile de blocare a interfeței de utilizare. De exemplu, codul așteaptă până când primește o valoare returnată și apoi eliberează bara de progres. Cel mai bine este să minimizați aceste tipuri de situații. Dar pentru sarcinile care utilizează o afacere explicită pas sau sarcini asincrone, este obișnuit să folosiți un serviciu extern pentru a finaliza sarcina, cum ar fi o Dataverse acțiune, o procedură stocată sau un Power Automate flux.

Plasați „ForAll” în mod corespunzător

Dacă aveți o expresie cu ForAll și colectați care arată astfel:

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

Apoi, inversează aceasta la

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

În primul model, orice regulă dependentă de colecția y este notificată cu privire la modificări și evaluată pentru fiecare iterație a lui x. În al doilea model, aceste reguli sunt evaluate o singură dată.

Luați în considerare evitarea referințelor la Gallery.AllItems

Când lucrați cu Power Apps, cel mai bine este să evitați să faceți referințe la Gallery.AllItems, cu excepția cazului în care aveți nevoie de valorile utilizatorului. Acest lucru se datorează faptului că de fiecare dată când AllItems este citit, este generat un nou tabel de ieșire. În schimb, utilizați Gallery.AllItemsCount dacă doriți doar să știți câte articole sunt încărcate.

Utilizați cu atenție Gallery.TemplateSize

Pentru a vă asigura că galeriile cu înălțime flexibilă sunt redate corect, este important să setați o dimensiune standard rezonabilă. Inițial, încercăm să redăm cât mai multe rânduri pe baza acestei valori. Dacă setați dimensiunea implicită la 0, încercăm să redăm totul, cu excepția câtorva cazuri marginale. Dacă utilizați o formulă, asigurați-vă că setați o valoare minimă pentru momentul în care formula ar putea fi evaluată la 0. De exemplu, puteți utiliza Max (20, varFoo + rectBar.Height). În acest fel, dacă varFoo și rectBar.Height nu sunt încă disponibile, vom folosi cel puțin o valoare rezonabilă de 20.

Există o întârziere de o secundă înainte ca modificările să fie detectate, ceea ce vă permite să finalizați tastarea în loc să detectați modificările pentru fiecare tastare.