Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Power Fx-Ausdrücke sind leistungsfähig und führen viele Hintergrundberechnungen automatisch durch. Während Power Fx viele Dinge für Sie automatisiert, ist es möglich, Ihre Berechnungen so schnell wie möglich zu optimieren.
Datenabruf
Explizite Spaltenauswahl verwenden
Das Feature "Explizite Spaltenauswahl" (EXPLICIT Column Selection, ECS) ist für alle neuen Apps standardmäßig aktiviert. Wenn sie für Ihre App nicht aktiviert ist, sollten Sie sie aktivieren. ECS reduziert automatisch die Anzahl der abgerufenen Spalten auf nur diejenigen, die in der Anwendung verwendet werden. Wenn ECS nicht aktiviert ist, können Sie mehr Daten abrufen, als Sie benötigen, was sich auf die Leistung auswirken kann. Gelegentlich kann die ursprüngliche Herkunft oder die Quelle einer Spalte verloren gehen, wenn eine App Daten aus Sammlungen abruft. Wir wissen nicht, ob es verwendet wird, und nutzen ECS, um es zu entfernen. Sie können ECS normalerweise dazu zwingen, mit einer fehlenden Spalte zu arbeiten, indem Sie den PowerFx-Ausdruck ShowColumns nach einem Sammlungsverweis oder ein Steuerelement verwenden.
Verwenden Sie Bilder in Galerien, Tabellen und Formularen sorgfältig.
Verwenden Sie Dataverse-Miniaturansichten von Bildern für Kataloge und Tabellen. Dataverse-Miniaturbilder sind ungefähr 1 Kilobyte groß, werden als Teil des Datensatzes inline gespeichert und sind nützlich und schnell für die Anzeige auf Steuerelementen, die Sammlungen anzeigen. Alle anderen Bildverweise, einschließlich aller SharePoint-Bilder, erfordern einen separaten Aufruf und sollten nicht in einem Katalog oder einer Tabelle platziert werden. Platzieren Sie Bilder, die einen separaten Anruf in Detailformularen erfordern. Erwägen Sie, standardmäßig nie ein vollständiges Bild anzuzeigen. Vollständige detaillierte Bilder können für Benutzer nützlich und wichtig sein. Sie können diese Bilder benutzern jedoch über eine explizite Benutzeraktion zur Verfügung stellen, z. B. eine Schaltfläche oder Navigation zu einer separaten Seite. SharePoint verfügt über eine Reihe von Bildern mittlerer Größe, die Sie für die Verwendung in einem Formular kurz vor dem Vollbild verwenden können. Dataverse hat nur zwei Größen: Miniaturansicht und Voll.
Berechnungen
Aufteilen von Formeln mit "App.formula"
Die Verwendung von App.formulas und benannten Formeln kann bei der Geschwindigkeit der App-Lade- und Seitennavigation helfen, da Power Fx entscheiden kann, wann eine Formel ausgewertet werden soll. Das bedeutet, dass sie nicht unbedingt in OnStart ausgewertet werden muss. Darüber hinaus können benannte Formeln in der Regel auch die Geschwindigkeit unterstützen. Insbesondere wenn Sie über ein langes Skript verfügen, ermöglichen das Aufteilen in benannte Formeln effizientere Berechnungen, da Power Fx die Arbeit planen und die Wiederverwendung ermöglicht. Weitere Informationen finden Sie unter App-Formeln.
Verwenden Sie gleichzeitig
Verwenden Sie die Funktion "Gleichzeitig" , damit Formeln gleichzeitig ausgeführt werden können. Wählen Sie sorgfältig aus, wo die Parallelität verwendet wird. Sie kann zu geringfügigen Geschwindigkeitssteigerungen führen, aber wenn Sie Elemente ausführen, die voneinander abhängig sind, kann es zu Zeit- und Drosselungsproblemen kommen.
Aufschieben erheblicher Updates für einen nicht blockierenden UI-Schritt
Große Aktualisierungen an einer Datenquelle können eine Weile dauern. Benutzer erwarten jedoch, dass die Benutzeroberfläche schnell die Steuerung an sie zurückgibt. Aufgaben können entweder sequenziell sein, wenn das Update abgeschlossen werden muss, bevor der Benutzer andere Aktionen ausführen kann oder asynchron (das Update kann getrennt von Benutzeraktionen abgeschlossen werden.)
Ein Beispiel für eine zeitaufwendige synchrone Aufgabe ist die Bestätigung eines Sitzes in einem Konzert. Bei den meisten zeitaufwändigen synchronen Aufgaben wie diesen ist es üblich, einen Fortschrittsbalken einzurichten. Diese Benutzeroberfläche blockiert den Benutzer tatsächlich, stellt jedoch sicher, dass die Aufgabe abgeschlossen ist, bevor andere UI-Elemente aktualisiert werden. Dieser Ansatz funktioniert möglicherweise nicht für Ihre Anwendung. Unternehmen behandeln normalerweise längere sequenzielle Schritte als expliziten Geschäftsschritt. Sie sind zugelassen, den nächsten Schritt über ein Signal im Geschäftsprozess zu gehen. Ein Beispiel ist eine Genehmigung. Eine Genehmigung kann schnell erfolgen oder sich verzögern. Auf der Benutzeroberfläche können Sie signalisieren, dass der Prozess auf verschiedene Arten abgeschlossen ist. Sie können eine Schaltfläche aktivieren, eine Nachricht anzeigen, E-Mail senden oder einen Teil der Benutzeroberfläche aktivieren, z. B. ein Menüelement.
Ein Beispiel für eine asynchrone Aufgabe ist der Abschluss einer Bestellung. Ein Kunde aktualisiert einen Bestellkorb, arbeitet durch seine Bestellung und platziert dann die Bestellung. Es müssen jedoch mehrere Aktualisierungen erfolgen, bevor der Kunde ein bestätigtes Lieferdatum erhält. In diesem Beispiel ist das Lieferdatum nicht etwas, das Sie sofort bereitstellen können. , sie können diesen Teil des Updates auf eine E-Mail zurückstellen, die später an den Kunden gesendet wird.
Bei synchronen Aufgaben verwenden Sie häufig den Code in Power Apps zum Blockieren von Aufgaben auf der Benutzeroberfläche. Beispielsweise wartet der Code, bis er einen Rückgabewert erhält, und gibt dann die Statusleiste frei. Es empfiehlt sich, diese Arten von Situationen zu minimieren. Aber für Aufgaben, die einen expliziten Geschäftsschritt oder asynchrone Aufgaben verwenden, ist es üblich, einen externen Dienst zu verwenden, um die Aufgabe auszuführen, z. B. eine Dataverse-Aktion, eine gespeicherte Prozedur oder einen Power Automate-Fluss.
"ForAll" angemessen platzieren
Wenn Sie einen Ausdruck mit ForAll und Collect haben, sieht dieser wie folgt aus:
ForAll(x, Collect(y, { … }))
Dann kehren Sie dies um
Collect(y, ForAll(x, { … }))
Im ersten Muster wird jede abhängige Regel zur Sammlung y über Änderungen benachrichtigt und für jede Iteration von x ausgewertet. Im zweiten Muster werden diese Regeln nur einmal ausgewertet.
Vermeiden Sie Verweise auf Gallery.AllItems
Wenn Sie mit Power Apps arbeiten, sollten Sie nicht auf "Gallery.AllItems" verweisen, es sei denn, Sie benötigen Benutzerwerte. Dies liegt daran, dass bei jedem Lesen von AllItems eine neue Ausgabetabelle generiert wird. Verwenden Sie stattdessen Gallery.AllItemsCount, wenn Sie nur wissen möchten, wie viele Elemente geladen werden.
Verwenden Sie Gallery.TemplateSize sorgfältig
Um sicherzustellen, dass Galerien mit flexibler Höhe korrekt gerendert werden, ist es wichtig, eine angemessene Standardgröße festzulegen. Zunächst versuchen wir, so viele Zeilen wie möglich basierend auf diesem Wert zu rendern. Wenn Sie die Standardgröße auf 0 festlegen, versuchen wir, alles zu rendern, mit Ausnahme einiger Randfälle. Wenn Sie eine Formel verwenden, stellen Sie sicher, dass Sie einen Minimalwert festlegen, falls die Formel zu 0 ausgewertet wird. Sie können z. B. Max (20, varFoo + rectBar.Height) verwenden. Wenn varFoo und rectBar.Height noch nicht verfügbar sind, verwenden wir zumindest einen angemessenen Wert von 20.
Hinweis DelayOutput speziell für die Suche
Es gibt eine zweite Verzögerung, bevor die Änderungen erkannt werden, sodass Sie die Eingabe abschließen können, anstatt die Änderungen für jede Eingabe zu erkennen.