Savjeti i najbolji primjeri iz prakse za poboljšanje izvedbe aplikacija od gotovih gradivnih elemenata
U prethodnim člancima saznali ste o fazama izvršavanja i tijeku podatkovnih poziva, uobičajenim izvorima sporih performansi i uobičajenim problemima s performansom i rezolucijom u aplikacijama od gotovih gradivnih elemenata. Također možete profitirati slijedeći savjete i najbolje prakse iz ovog članka za poboljšanje izvedbe aplikacija koje stvarate.
Ograničenje podatkovne veze
Nemojte dodavati više od 30 veza u jednu aplikaciju. Aplikacije potiču nove korisnike da se prijave u svaki poveznik, tako da svaki dodatni poveznik povećava vrijeme potrebno za pokretanje aplikacije. Dok se aplikacija izvršava, svaki poveznik treba resurse CPU-a, memoriju i propusnost mreže kada aplikacija traži podatke iz tog izvora.
Učinkovitost svoje aplikacije možete brzo izmjeriti uključivanjem Alata za razvojne inženjere u programu Microsoft Edge ili Google Chrome tijekom pokretanja aplikacije. Vašoj će aplikaciji vjerojatno trebati duže od 15 sekundi za dohvaćanje podataka ako učestalo zahtijeva podatke iz više od 30 veza. Svaka se dodana veza u tom ograničenju računa pojedinačno, bez obzira na vrstu povezanog izvora podataka — kao što je Microsoft Dataverse, tablice SQL poslužitelja ili popisi stvoreni pomoću Microsoftovih popisa.
Ograničenje broj kontrola
Nemojte dodavati više od 500 kontrola u jednu aplikaciju. Power Apps generira model objekta HTML dokumenta za renderiranje svake kontrole. Što više kontrola dodate, to platformi Power Apps treba više generiranog vremena.
U nekim slučajevima možete postići isti rezultat i pokrenuti aplikaciju brže ako koristite galeriju umjesto pojedinačnih kontrola. Uz to, možda ćete htjeti smanjiti broj vrsta kontrola na istom zaslonu. Neke kontrole (kao što su PDF preglednik, podatkovna tablica i kombinirani okvir) povlače velike skripte izvršenja i treba im dulje vrijeme za prikazivanje.
Optimizacija svojstva OnStart
Upotrijebite funkciju ClearCollect za lokalno predmemoriranje podataka ako se to tijekom korisničke sesije ne promijeni. Također, upotrijebite funkciju Istovremeni rad za istovremeno učitavanje izvora podataka; to može prepoloviti vrijeme koje je aplikaciji potrebno za učitavanje podataka. Dodatne informacije: Funkcija istovremenog rada na platformi Power Apps
Bez funkcije Istovremeni rad sljedeća formula učitava svaku od četiri tablice jednu po jednu:
ClearCollect( Product, '[SalesLT].[Product]' );
ClearCollect( Customer, '[SalesLT].[Customer]' );
ClearCollect( SalesOrderDetail, '[SalesLT].[SalesOrderDetail]' );
ClearCollect( SalesOrderHeader, '[SalesLT].[SalesOrderHeader]' )
To ponašanje možete potvrditi u alatima Developer Tools za svoj preglednik, kao što je prikazano na sljedećoj slici.
Istu formulu možete priložiti funkciji Istovremeno za smanjenje ukupnog vremena potrebnog operaciji:
Concurrent(
ClearCollect( Product, '[SalesLT].[Product]' ),
ClearCollect( Customer, '[SalesLT].[Customer]' ),
ClearCollect( SalesOrderDetail, '[SalesLT].[SalesOrderDetail]' ),
ClearCollect( SalesOrderHeader, '[SalesLT].[SalesOrderHeader]' ))
Ovom promjenom aplikacija paralelno dohvaća tablice, kao što je prikazano na sljedećoj slici.
Napomena
Za više informacija o problemima s performansama i rješenjima povezanima sa svojstvom OnStart pročitajte ovdje Događaj OnStart treba podešavanje.
Savjet
Preporučujemo korištenje svojstva App.StartScreen jer ono pojednostavnjuje pokretanje aplikacije i poboljšava performanse aplikacije.
Podaci pretraživanja predmemorije
Upotrijebite funkciju Postavi za lokalno predmemoriranje podataka iz tablica za pretraživanje kako bi se izbjeglo opetovano dohvaćanje podataka iz izvora. Ova tehnika optimizira učinkovitost ako se podaci tijekom sesije vjerojatno neće mijenjati. Kao što je prikazano u sljedećem primjeru, podaci se preuzimaju iz jednog izvora, a zatim lokalno navode dok korisnik ne zatvori aplikaciju.
Set(CustomerOrder, Lookup(Order, id = “123-45-6789”));
Set(CustomerName, CustomerOrder.Name);
Set(CustomerAddress, CustomerOrder.Address);
Set(CustomerEmail, CustomerOrder.Email);
Set(CustomerPhone, CustomerOrder.Phone);
Ova je metoda korisnija za podatke kao što su podaci o kontaktima, zadane vrijednosti ili korisnički podaci koji se ne mijenjaju često. Ovu tehniku možete koristiti i s funkcijama Zadane postavke i Korisnik.
Izbjegavanje ovisnosti kontrole među zaslonima
Da bi se poboljšale performanse, zasloni aplikacije učitavaju se u memoriju samo prema potrebi. Ova se optimizacija može poremetiti ako se, na primjer, učita zaslon 1 i jedna od njegovih formula koristi svojstvo kontrole sa zaslona 2. Sada se mora učitati 2. zaslon kako bi se udovoljilo ovisnosti prije nego što bi se mogao prikazati 1. zaslon. Zamislite da 2. zaslon ima ovisnost o 3. zaslonu, koji ima drugu ovisnost o 4. zaslonu tako dalje. Taj lanac ovisnosti može dovesti do učitavanja mnogih zaslona.
Iz tog razloga izbjegavajte ovisnosti o formulama među zaslonima. U nekim slučajevima, za dijeljenje informacija među zaslonima možete koristiti globalnu varijablu ili zbirku.
Postoji iznimka: zamislite da je u prethodnom primjeru jedini način prikaza zaslona 1 navigacija sa zaslona 2. Tada će zaslon 2 već biti učitan u memoriju u trenutku kad se treba učitati zaslon 1. Nije potreban dodatni rad da bi se ispunila ovisnost za zaslon 2, stoga nema utjecaja na izvedbu.
Uporaba delegacije
Tamo gdje je to moguće, upotrebljavajte funkcije koje delegiraju obradu podataka na izvor podataka umjesto preuzimanja podataka na obradu na lokalni uređaj. Ako aplikacija mora lokalno obrađivati podatke, rad zahtijeva mnogo više snage procesora, memorije i propusnosti mreže, osobito ako je skup podataka velik.
Savjet
Da biste saznali više o funkcijama koje se mogu delegirati i koje podržavaju određeni poveznici, idite na Dokumentacija o poveznicima.
Kao primjer funkcija koje se mogu delegirati razmotrite stupac za ID, koji je u popisu stvorenom pomoću Microsoftovih popisa definiran kao vrsta podataka Broj. Formule u sljedećem primjeru vratit će rezultate kao što se očekuje. Pa ipak, prva formula može se delegirati, dok se druga ne može.
Formula | Može li se delegirati? |
---|---|
Filter ('List data source', ID = 123 ) |
Jest |
Filter(`List data source', ID ="123") |
Ne |
Budući da pretpostavljamo da je stupac ID-a u sustavu SharePoint definiran vrstom podataka Broj, vrijednost s desne strane trebala bi biti numerička varijabla umjesto varijable stringa. U suprotnome, ta neusklađenost mogla bi prouzročiti da se formula ne može delegirati.
Korištenje funkcija koje se ne mogu delegirati i neodgovarajuće ograničenje retka podataka za upite koji se ne mogu delegirati može negativno utjecati na izvedbu aplikacije. Dodatne informacije: Delegiranje u aplikaciji od gotovih gradivnih elemenata
Uporaba odgođenog učitavanja
Uključite značajku pretpregleda za odgođeno učitavanje ako vaša aplikacija ima više od 10 zaslona, bez pravila i mnogo kontrola koje se nalaze na više zaslona i izravno su povezane s izvor podataka. Ako izradite ovu vrstu aplikacije i ne omogućite ovu značajku, izvedba aplikacije može trpjeti jer se kontrole na svim zaslonima moraju popuniti, čak i na zaslonima koji nisu otvoreni. Također, svi se zasloni aplikacije moraju ažurirati kad god se izvor podataka promijeni, primjerice kada korisnik doda zapis.
Rad s velikim skupovima podataka
Upotrijebite izvore podataka i formule koje možete delegirati kako biste svoje aplikacije držali u dobrom izvedbenom stanju za vrijeme dok korisnici mogu pristupiti svim potrebnim informacijama i izbjegavajte dosezanje ograničenja podatkovnog retka od 2000 za upite koji se ne mogu delegirati. Za stupce zapisa podataka na kojima korisnici mogu pretraživati, filtrirati ili sortirati podatke koristite indekse na stupcima kako su ih opisali izvori podataka kao što su SQL Server ili SharePoint.
Napomena
Za dodatne informacije o tome kako veliki skupovi podataka mogu uzrokovati uobičajene probleme s izvedbom na različitim platformama, pročitajte Veliki skupovi podataka polako se učitavaju na različitim platformama.
Redovito ponavljajte objavljivanje aplikacije
Proizvođači se potiču da redovito objavljuju svoje aplikacije. Budući da se platforma Power Apps neprestano optimizira i implementira, vaša se aplikacija regenerira u okviru najnovijih optimizacija platforme kada je ponovno objavite.
Izbjegavanje ponavljanja iste formule na više mjesta
Ako više svojstava pokreće istu formulu (osobito ako je složena), razmislite o tome da je postavite jednom, a zatim upućujete izlaz prvog svojstva u sljedeća. Na primjer, nemojte postavljati svojstvo kontrola A, B, C, D i E DisplayMode u istu složenu formulu. Umjesto toga, postavite svojstvo DisplayMode kontrole A u složenu formulu, svojstvo DisplayMode kontrole B na rezultat svojstva DisplayMode kontrole A i tako dalje za C, D i E.
Omogućivanje svojstva DelayOutput na svim kontrolama Unosa teksta
Ako imate više formula ili pravila koja upućuju na vrijednost kontrole Unos teksta, postavite svojstvo DelayedOutput te kontrole na točno. Svojstvo Tekst te kontrole ažurirat će se tek nakon prestanka brzih pritisaka tipki. Formule ili pravila neće se pokrenuti toliko puta, a poboljšat će se performanse aplikacije.
Izbjegavanje uporabe Form.Updates u pravilima i formulama
Ako vrijednost korisničkog unosa stavite u pravilo ili formulu pomoću varijable Form.Updates
, ponavlja se kroz sve podatkovne kartice obrasca i svaki put stvara zapis. Kako biste svoju aplikaciju učinili učinkovitijom, uputite vrijednost izravno s podatkovne kartice ili vrijednosti kontrole.
Upotreba rotora DelayItemLoading i Loading za poboljšanje performansi u Galeriji
Ovisno o konfiguraciji, galeriji može trebati više vremena da prikaže vidljive retke. Postoji nekoliko načina za poboljšanje performansi.
- Pojednostavite predložak. Na primjer, razmislite o smanjenju broja kontrola, referenci na pretraživanja.
- Galerijama sa složenim predlošcima može koristiti postavljanje DelayItemLoading na true i LoadingSpinner na LoadingSpinner.Controls. Ova će promjena poboljšati perceptivno iskustvo kada je vrijeme prikaza duže. DelayItemLoading također će odgoditi prikaz predložaka što će omogućiti da se ostatak zaslona prikaže brže ako se zaslon i galerija ne natječu za resurse.
Omogućite učitavanje aplikacije unaprijed radi boljih performansi
Ako želite, možete unaprijed učitati aplikaciju da biste poboljšali performanse.
Prijavite se u Power Apps, a zatim odaberite Aplikacije u izborniku.
Odaberite Više radnji (...) za aplikaciju koju želite zajednički koristiti, a zatim odaberite Postavke.
U oknu Postavke, prebacite Unaprijed učitajte aplikaciju za bolju izvedbu na Da. Aplikacija će se tada unaprijed učitati.
Da bi promjene stupile na snagu za aplikacije ugrađene u aplikaciju Teams, uklonite i ponovno dodajte svoju aplikaciju u Teams.
Napomena
To kompilirane elemente aplikacije čini dostupnima putem neprovjerenih krajnjih točaka kako bi se omogućilo njihovo učitavanje prije provjere autentičnosti. Međutim, korisnici i dalje mogu koristiti vašu aplikaciju za pristup podacima putem poveznika tek nakon dovršetka provjere autentičnosti i autorizacije. Takvo ponašanje osigurava da podaci koje aplikacija dohvaća iz izvora podataka neće biti dostupni neovlaštenim korisnicima. Kompilirani snimljeni sadržaji aplikacije uključuju zbirku JavaScript datoteka koje sadrže tekst autora u kontrolama aplikacije (kao što su PCF kontrole), medijska sredstva (kao što su slike), naziv aplikacije i URL okruženja u kojem se aplikacija nalazi.
Općenito, aplikacije bi trebale dohvatiti medije i informacije iz izvora podataka putem veza. Ako se mediji i informacije moraju dodati u aplikaciju, a da ne dolaze s veze, a smatra se osjetljivima, možda ćete htjeti onemogućiti tu postavku. Imajte na umu da će onemogućavanje ove postavke rezultirati time da korisnici čekaju malo duže da pristupe aplikaciji.
Podaci aplikacije pohranjeni na uređaju
Da biste korisnicima omogućili brže dohvaćanje podataka o aplikaciji prilikom pokretanja aplikacije, određeni se podaci lokalno pohranjuju na vaš uređaj u predmemoriju preglednika. Podaci koji su pohranjeni uključuju pojedinosti o aplikaciji, okruženju i vezi. Ti će podaci ostati pohranjeni u pregledniku na temelju ograničenja pohrane svakog preglednika. Da biste očistili pohranjene podatke, pogledajte upute za svaki preglednik.
Sljedeći koraci
Pregledajte standarde šifriranja kako biste maksimizirali performanse aplikacije i lakše je održavali.
Pogledajte također
Razumijevanje faza izvršavanja aplikacija od gotovih gradivnih elemenata i tijeka podatkovnih poziva
Uobičajeni problemi s performansama aplikacije od gotovih gradivnih elemenata i rješenja
Uobičajeni uzroci sporih performansi za aplikaciju od gotovih gradivnih elemenata
Uobičajeni problemi i rješenja za uslugu Power Apps
Otklanjanje poteškoća prilikom pokretanja za Power Apps
Napomena
Možete li nam reći više o željenim jezicima za dokumentaciju? Ispunite kratki upitnik. (imajte na umu da je upitnik na engleskom jeziku)
Ispunjavanje upitnika će trajati otprilike sedam minuta. Osobni podaci se ne prikupljaju (izjava o zaštiti privatnosti).