Споделяне чрез


Бързи изчисления

Power Fx Изразите са мощни и извършват много фонови изчисления вместо вас автоматично. Въпреки че Power Fx автоматизира много неща вместо вас, е възможно да настроите изчисленията си възможно най-бързо.

Извличане на данни

Използване на изричен избор на колона

Функцията за изричен избор на колона (ECS) е активирана по подразбиране за всички нови приложения. Ако не е активиран за приложението ви, трябва да го активирате. ECS автоматично намалява броя на извлечените колони само до тези, които се използват в приложението. Ако ECS не е активиран, може да извличате повече данни, отколкото са ви необходими, което може да повлияе на производителността. Понякога, когато приложение изтегля данни чрез колекции, оригиналната линия или източник на колона може да бъде загубена. Не знаем дали се използва и го изпускаме с помощта на ECS. Обикновено можете да принудите ECS да работи за липсваща колона, като използвате израза на PowerFx ShowColumns след препратка към колекция или като го използвате в контрола.

Използвайте внимателно изображения в галерии, таблици и формуляри

Използвайте Dataverse миниатюрни версии на изображения за галерии и таблици. Dataverse Миниатюрите са малки около 1 килобайт и се съхраняват вградени като част от записа и са полезни и бързи за показване на контроли, които показват колекции. Всички други препратки към изображения, включително всички SharePoint изображения, изискват отделно извикване и не трябва да се поставят в галерия или таблица. Поставете изображения, които изискват отделно извикване, във формуляри за детайли. Помислете никога да не показвате пълно изображение по подразбиране. Пълните детайлни изображения могат да бъдат полезни и важни за потребителите. Можете обаче да направите тези изображения достъпни за потребителите чрез изрично потребителско действие, например бутон или навигация до отделна страница. SharePoint има набор от изображения със среден размер, които можете да използвате за използване във формуляр, по-малък от пълното изображение. Dataverse има само два размера: Thumbnail и Full.

Изчисления

Разделяне на формули с App.formula

Използването на App.formulas и именувани формули може да помогне за скоростта на зареждане на приложението и навигацията по страницата, тъй като позволява Power Fx да се реши кога да се оцени формула. Това означава, че не е задължително да го оценява в OnStart. В допълнение, именуваните формули обикновено могат да помогнат и за ускоряването. По-специално, ако имате дълъг скрипт, разделянето му на именувани формули позволява по-ефективни изчисления, тъй като Power Fx може да планира работата и позволява повторно използване. За повече информация вижте Формули за приложения.

Използвайте едновременно

Използвайте функцията Concurrent , за да позволите формулите да се изпълняват едновременно. Внимателно изберете къде да се използва едновременно. Може да осигури някои скромни ускорения, но ако използвате елементи, които зависят един от друг, това може да причини проблеми с времето и дроселирането.

Отлагане на значителни актуализации на неблокираща стъпка на потребителския интерфейс

Завършването на големи актуализации на източник на данни може да отнеме известно време. Но потребителите очакват потребителският интерфейс да им върне контрола бързо. Задачите могат да бъдат или последователни, където актуализацията трябва да завърши, преди потребителят да може да предприеме друго действие, или асинхронни (актуализацията може да завърши отделно от действията на потребителя).

Пример за отнемаща време синхронна задача е потвърждаването на място на концерт. За повечето отнемащи време синхронни задачи като тази е обичайно да се поставя лента за напредъка. Този потребителски интерфейс всъщност блокира потребителя, но гарантира, че задачата е завършена, преди да бъдат актуализирани други елементи на потребителския интерфейс. Този подход може да не работи за вашата кандидатура. Бизнесът обикновено обработва по-дълги последователни стъпки като изрична бизнес стъпка. Одобрени сте да преминете през следващата стъпка чрез сигнал за бизнес процес. Пример за това е одобрението. Одобрението може да дойде бързо или може да се забави. В потребителския интерфейс можете да сигнализирате, че процесът е завършен по няколко начина. Можете да разрешите бутон, да покажете съобщение, да изпратите имейл или да разрешите част от потребителския интерфейс, като например елемент от менюто.

Пример за асинхронна задача е изпълнението на поръчка. Клиентът актуализира кошницата за поръчки, обработва поръчката си и след това прави поръчката. Но трябва да се случат няколко актуализации, преди клиентът да получи потвърдена дата на доставка. В този пример датата на изпращане не е нещо, което можете лесно да предоставите веднага. можете да отложите тази част от актуализацията за имейл, който се изпраща на клиента по-късно.

За синхронни задачи често ще използвате кода за Power Apps задачи за блокиране на потребителския интерфейс. Например, кодът изчаква, докато получи връщана стойност и след това освобождава лентата за напредъка. Най-добре е да сведете до минимум този тип ситуации. Но за задачи, които използват изрична бизнес стъпка или асинхронни задачи, е обичайно да се използва външна услуга за изпълнение на задачата, като например Dataverse действие, съхранена процедура или Power Automate поток.

Поставете "ForAll" по подходящ начин

Ако имате израз с ForAll и събирате, той изглежда така:

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

След това обърнете това на

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

В първия модел всяко зависимо правило за колекция y се уведомява за промени и се оценява за всяка итерация на x. Във втория модел тези правила се оценяват само веднъж.

Помислете за избягване на препратки към Gallery.AllItems

Когато работите с Power Apps, най-добре е да избягвате препращането към Gallery.AllItems, освен ако не се нуждаете от потребителски стойности. Това е така, защото всеки път, когато се чете AllItems, се генерира нова изходна таблица. Вместо това използвайте Gallery.AllItemsCount, ако просто искате да знаете колко елемента са заредени.

Внимателно използвайте Gallery.TemplateSize

За да сте сигурни, че галериите с гъвкава височина се изобразяват правилно, важно е да зададете разумен размер по подразбиране. Първоначално се опитваме да изобразим възможно най-много редове въз основа на тази стойност. Ако зададете размера по подразбиране на 0, ние се опитваме да изобразим всичко, с изключение на няколко крайни случая. Ако използвате формула, не забравяйте да зададете минимална стойност за момента, в който формулата може да се оценява на 0. Например, можете да използвате Max (20, varFoo + rectBar.Height). По този начин, ако varFoo и rectBar.Height все още не са налични, ние поне използваме разумна стойност от 20.

Има една секунда забавяне, преди промените да бъдат открити, което ви позволява да завършите въвеждането, вместо да откривате промените за всяко въвеждане.