Einführung
Der erste Eindruck ist wichtig. Der erste Eindruck, den App-Benutzer erhalten, ist die Zeitspanne, die die App benötigt, um den ersten Bildschirm anzuzeigen oder anderes visuelles Feedback, wie etwa Fortschrittsanzeigen, bereitzustellen. Während des Starts führt Ihre App mehrere Schritte aus, um die Darstellung des ersten Bildschirms vorzubereiten: „Authentifizieren“, „Metadaten abrufen“, „OnStart-Verarbeitung“ und „Renderbildschirme“.
Authentifizieren – Verarbeitet alle Authentifizierungsaufforderungen für Verbindungen, die für die App konfiguriert sind. Durch das Entfernen nicht verwendeter Konnektoren kann die Anzahl der Eingabeaufforderungen reduziert und der Prozess beschleunigt werden.
Metadaten abrufen – Ruft Metadaten wie die Version der Microsoft Power Apps-Plattform ab, auf der die App ausgeführt wird, sowie die Quellen, aus denen sie Daten abrufen muss.
OnStart-Verarbeitung – Wertet die Formeln aus, die Sie in der Eigenschaft OnStart eingerichtet haben. Die Optimierung der Leistung dieser Verarbeitung wirkt sich unmittelbar auf die Verbesserung der Ladezeit der App aus.
Renderbildschirme – Der erste Bildschirm wird vorbereitet und dem Benutzer angezeigt. Angegebene OnVisible-Formeln werden zuerst implementiert. Durch die Optimierung von Formeln und die Minimierung der Anzahl der Steuerelemente auf dem Bildschirm kann die Ladezeit verbessert werden.
In diesem Modul wird erläutert, wie Sie die Ladezeit Ihrer App bewerten und Verbesserungsstrategien identifizieren können.
App-Ladezeit bewerten
Wenn Sie die Ladezeit einer App bewerten, ist die Festlegung einer Basis für die Ladezeit der App ein guter Ausgangspunkt. Dazu können Sie die Startzeit vom Starten der Anwendung bis zu dem Zeitpunkt messen, an dem Sie der Ansicht sind, dass Sie über eine brauchbare Anwendung verfügen. Verwenden Sie eine Stoppuhr, um die Zeit zwischen dem Start der App und dem Zeitpunkt zu messen, an dem die App Ihrer Meinung nach von einer Person genutzt werden kann. Tools, mit denen Sie die Leistungsdetails während der Ladezeit messen und analysieren können, werden später in diesem Modul erläutert. Wir empfehlen Ihnen, bei jedem App-Update eine neue Bewertung durchzuführen, damit Sie die neue Version mit Ihrer vorherigen Baseline vergleichen und anschließend signifikante Erhöhungen der Ladezeit ermitteln können.
Die Messung der Startzeit hilft Ihnen dabei, die tatsächlichen Zeiten zu ermitteln. Sie sollten jedoch auch in Erwägung ziehen, die Benutzer zu beobachten und zu fragen, wie sie die Leistung der Anwendung wahrnehmen. Gelegentlich kann es vorkommen, dass eine App in wenigen Sekunden geladen ist, Benutzer dies jedoch als viel länger empfinden, da sie die App noch nicht als brauchbar ansehen. Diese Situation kann beispielsweise eintreten, da die App nach der Anzeige des ersten Bildschirms weiterhin Daten lädt und die Informationen aktualisiert, obwohl Benutzer bereits damit interagieren. Die Lösungsansätze für diese beiden Probleme sind unterschiedlich. Wenn Sie versuchen, die Ladezeit zu verbessern, können Sie in der Regel imperative Daten abrufen, die Hinweise darauf liefern, wofür Ihre App Zeit aufwendet. Wenn Sie versuchen, die Wahrnehmung durch den Benutzer zu verbessern, müssen Sie die Person beobachten, die die App verwendet, um zu verstehen, wie sie sie verwendet und welche Änderungen ihre Wahrnehmung verbessern könnten. Kleine Änderungen können zur Verbesserung der Wahrnehmung beitragen, z. B. das Hinzufügen von Textaufforderungen, um die Interaktion zu starten, oder das Ändern des Startbildschirms, um die neuen Datensätze zu bearbeiten oder neu zu laden.
Üblicherweise können Sie feststellen, welche Komponenten die Anwendung verlangsamen, indem Sie sich die Eigenschaft OnStart oder die Eigenschaft OnVisible des ersten Bildschirms ansehen. Sie können die Ladezeit beschleunigen, indem Sie die in diesen Eigenschaften ausgeführten Arbeitsaufgaben optimieren oder zurückstellen. Einige dieser Techniken werden später in diesem Modul erläutert.
Wenn Sie Analysen für Ihre App über das Entwicklerportal aufrufen, umfassen diese die Analysen Dauer bis zum ersten Bildschirm und Dauer bis zum ersten Bildschirm ohne Verbindungseinrichtung.
Die Daten werden für die letzten 30 Tage bereitgestellt und können bei der Bereitstellung einer Zusammenfassung der Leistung Ihrer App hilfreich sein.
Das Power Apps-Überprüfungstool ist eine weitere Option zum Bewerten von Apps. Dieses Open-Source-Tool ist als Lösung verpackt, die Sie in Ihre Microsoft Dataverse-Umgebung importieren können. Nachdem Sie das Tool importiert haben, können Sie es verwenden, um Apps in Ihrer Umgebung zu bewerten. Sie können auch .msapp-Dateien zur Bewertung hochladen. Die automatisierte Überprüfung kann Ihre App anhand einer anpassbaren Prüfliste mit bewährten Methoden überprüfen und viele häufige Probleme identifizieren, die sich auf die Startzeit der App und die allgemeine Leistung Ihrer Apps auswirken können. Nach Abschluss der automatischen Überprüfung können Sie eine Liste anzeigen, aus der hervorgeht, in welchen Bereichen Ihre App gut funktioniert und in welchen Bereichen sie verbessert werden kann.
Sie können die Ergebnisse nicht nur in der App anzeigen, sondern auch per E-Mail senden, was hilfreich sein kann, wenn Sie kein App-Entwickler sind sind.
Das Tool kann die folgenden allgemeinen Regeln überprüfen, die sich auf die Startzeit auswirken können:
Verwendung der Funktion „Gleichzeitig“ – Erwägen Sie die Verwendung der Funktion „Gleichzeitig“ für parallele unabhängige Datenanforderungen.
Markierungen für App-Einstellungen – Überprüfen Sie die App-Einstellungen. Stellen Sie sicher, dass die Optionen „Verzögertes Laden“ und „Explizite Spaltenauswahl“ aktiviert sind.
Delegierung – Stellen Sie sicher, dass ClearCollect- und Filter-Vorgänge delegierbar sind.
Anlagenoptimierung – Überprüfen Sie die Komprimierung/Größenoptimierung eingebetteter Anlagen.
Datenladungsstrategie – Überprüfen Sie die OnStart- und OnVisible-Datenladungsstrategie. Vermeiden Sie Datenanrufe in OnStart. Wechseln Sie nach Möglichkeit zu OnVisible. Stellen Sie sicher, dass nur wichtige Datenaufrufe die Benutzerinteraktion mit der Benutzeroberfläche beim erstmaligen Laden des Startbildschirms blockieren.
Bildschirmübergreifende Abhängigkeiten – Stellen Sie sicher, dass sich wiederholende Elemente der Benutzeroberfläche mit Komponenten (z. B. Menüs, Kopfzeile, Fußzeile) verknüpft sind.
Ihre App-Einstellungen überprüfen
App-Einstellungen können einen erheblichen Einfluss auf die Leistung Ihrer App haben. Überprüfen Sie daher bei jedem App-Update die App-Einstellungen und deren Aktivierungsstatus. Bei älteren Apps sind die neuesten App-Einstellungsoptionen möglicherweise nicht automatisch aktiviert, um sicherzustellen, dass die neue Option vorhandene Apps nicht beschädigt. Möglicherweise haben Sie auch eine Einstellung zur Behebung eines Problems aktiviert, nach Abschluss dieses Vorgangs jedoch vergessen, die Einstellung zu deaktivieren. Ein gutes Beispiel für dieses Szenario ist die Option Veröffentliche App debuggen. Durch die Aktivierung dieser Option können mehr Debuginformationen angezeigt werden, wenn Sie den App-Monitor zur Behandlung von Problemen mit der veröffentlichten App verwenden. Wenn diese Option aktiviert ist, kann sie sich negativ auf die Leistung auswirken und sollte in der Produktion nicht aktiviert bleiben.
Eine weitere zu berücksichtigende Einstellung ist der Grenzwert für Datenzeilen. Diese Einstellung bestimmt die maximale Anzahl von Zeilen, die von einer serverbasierten Verbindung abgerufen werden, wenn keine Delegierung unterstützt wird. Standardmäßig ist dieser Wert 500 und kann ein beliebiger Wert zwischen 1 und 2.000 sein. Zur Problemumgehung Delegierungsprobleme in Apps ist es üblich, dass dieser Wert vom Benutzer erhöht wird. Diese Erhöhung kann zu unerwarteten Problemen führen, wenn eine Entwicklungsumgebung viel kleinere Datensätze enthält als die Produktionsumgebung. Wenn der Grenzwert für Datenzeilen beispielsweise auf 2.000 festgelegt ist, lädt der folgende Ausdruck in Grenzwert für Datenzeilen möglicherweise nur einige Zeilen in einer Entwicklungsumgebung im Voraus.
ClearCollect(colDesks,Desks)
Dieselbe App könnte in einer Produktionsumgebung mit einem vollständig ausgefüllten Datensatz die gesamten 2.000 Zeilen abrufen. Somit wird die App in der Produktion viel langsamer geladen als in der Entwicklung. Häufig ist es besser, auf die Beseitigung von Delegierungswarnungen hinzuwirken, als diesen Wert zu erhöhen.
In älteren Apps ist die Einstellung Navigate-Funktion in App.OnStart aktivieren möglicherweise aktiviert. Diese Einstellung ermöglicht Ihnen die Verwendung der Funktion „Navigate()“ in der Eigenschaft App.OnStart, die Ergebnisse im ersten Bildschirm werden jedoch erst gerendert, wenn alle Ihre Ausdrücke in App.OnStart bewertet wurden. In neueren Apps ist dieser Ansatz nicht zulässig, und Sie müssen stattdessen die Eigenschaft App.StartScreen verwenden. Die Eigenschaften OnStart und StartScreen werden später in diesem Modul ausführlich behandelt. Wenn diese Einstellung in Ihrer Anwendung aktiviert ist, sollten Sie eine Aktualisierung auf den neuen Ansatz in Erwägung ziehen und die Einstellung deaktivieren, was die Ladezeiten verbessern kann.
Zusätzlich zu den zuvor genannten Einstellungen weist die Kategorie Zukünftige Funktionen weitere Einstellungen auf, die Sie überprüfen sollten. Diese Kategorie umfasst drei Abschnitte: Vorschau, Experimentell und Zurückgezogen.
Neue Einstellungen sind zunächst Experimentell und werden zu Vorschau, wenn sie ausgereift sind. Experimentelle Funktionen ermöglichen das Testen einer neuen Funktion, sind jedoch nicht für Produktions-Apps vorgesehen. Diese Funktionen sind standardmäßig deaktiviert und müssen aktiviert werden. Es wurden erhebliche Investitionen in die Verbesserung der App-Leistung getätigt. Halten Sie also in diesem Bereich weiterhin Ausschau nach zukünftigen Funktionen.
In der Regel sind die Einstellungen im Abschnitt Vorschau standardmäßig für neue Apps aktiviert. Diese Funktionen befinden sich jeweils in der letzten Testphase, bevor sie zu Standardeinstellungen werden, die für alle Apps aktiviert sind. Bei den vorhandenen Apps müssen Sie sich anmelden, um diese Einstellungen zu aktivieren, wenn Sie sie verwenden möchten. In einigen Fällen sind für die Anmeldung geringfügige Änderungen bei der Verwendung der Formel erforderlich.
Wenn Sie an einem Leistungsproblem arbeiten, kann das Testen einiger der neuen Funktionen Aufschluss darüber geben, ob sie zur Lösung Ihrer Probleme beitragen können. Abzuwarten, bis die Funktionen ausgereift sind, könnte in diesem Fall eine Alternative zur Umgestaltung ohne deren Nutzen sein.
Grenzwerte und Drosselung
Jeder Konnektor kann einen eigenen Grenzwert für abgerufene Daten und Drosselung haben. Darüber hinaus sind Serviceschutzgrenzen auf der Plattformebene vorhanden. Stellen Sie sicher, dass Sie diese Grenzwerte für die in Ihrer App verwendeten Konnektoren kennen. Wenn Apps beim Start auf diese Grenzwerte stoßen werden sie möglicherweise langsamer geladen.
Ladebild verwenden
Die Benutzerwahrnehmung kann verbessert werden, indem ein Ladebild oder eine Statusanzeige bei lange dauernden Vorgängen in Ihrer App verwendet wird.
Die einfachste Möglichkeit, ein Ladebild während des Ladens Ihrer App zu verwenden, besteht darin, eine Komponente mit einem sich drehenden Bild zu verwenden. Ein vordefiniertes Bild finden Sie im GitHub-Repository für Power Apps-Tools. Sie können diese Komponente importieren und auf Ihrem ersten Bildschirm über Ihren anderen Steuerelementen platzieren. Anschließend können Sie eine Variable verwenden, um die Sichtbarkeit der Komponente zu steuern. Die folgende Abbildung zeigt ein Beispiel für das Festlegen der Eigenschaft „Visible“ auf den Wert der Variablen „showLoader“.
Anschließend können Sie in App.OnStart das Ladebild vor dem Laden der Daten aktivieren und es nach dem Laden der Daten wieder deaktivieren.
Set(showLoader, true);
ClearCollect(colDesks, Desks);
ClearCollect(colDeskFeatures, 'Desk Features');
Set(showLoader, false);
Die Verwendung eines Ladebildes beschleunigt Ihre Anwendung zwar nicht, sie bietet jedoch visuelles Feedback und kann dem Benutzer vermitteln, dass die App im Hintergrund arbeitet.
Im Rest dieses Moduls werden andere Verfahren zum Identifizieren und Verbessern der Ladeleistung von Apps erläutert.