Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Wyrażenia Power Fx są zaawansowane i automatycznie wykonują wiele obliczeń w tle. Podczas gdy Power Fx automatyzuje wiele zadań, można precyzyjnie dostroić obliczenia, aby były jak najszybsze.
Pobieranie danych
Użyj jawnego wyboru kolumn
Funkcja jawnego zaznaczenia kolumny (ECS) jest domyślnie włączona dla wszystkich nowych aplikacji. Jeśli ta funkcja nie jest włączona w Twojej aplikacji, należy ją włączyć. Usługa ECS automatycznie zmniejsza liczbę kolumn pobranych tylko do tych, które są używane w aplikacji. Jeśli usługa ECS nie jest włączona, pobieranie większej ilości danych może mieć wpływ na wydajność. Czasami, gdy aplikacja pobiera dane za pośrednictwem kolekcji, oryginalne pochodzenie lub źródło kolumny może zostać utracone. Nie wiemy, czy jest używany i usuwamy go za pomocą usługi ECS. Zazwyczaj można wymusić działanie usługi ECS dla brakującej kolumny przy użyciu wyrażenia PowerFx ShowColumns po odwołaniu do kolekcji lub przy użyciu jej w kontrolce.
Ostrożnie używaj obrazów w galeriach, tabelach i formularzach
Używaj miniatur usługi Dataverse do galerii i tabel. Miniatury usługi Dataverse są niewielkie, około 1 kilobajta wielkości, i są osadzone bezpośrednio w rekordzie, co sprawia, że są przydatne i szybko wyświetlane w kontrolkach pokazujących kolekcje. Wszystkie inne odwołania do obrazów, w tym wszystkie obrazy programu SharePoint, wymagają oddzielnego wywołania i nie powinny być umieszczane w galerii lub tabeli. Umieść obrazy wymagające osobnego wywołania w formularzach szczegółowych. Rozważ, aby domyślnie nie wyświetlać pełnego obrazu. Pełne szczegółowe obrazy mogą być przydatne i ważne dla użytkowników. Można jednak udostępnić te obrazy użytkownikom za pomocą jawnej akcji użytkownika, na przykład przycisku lub nawigacji do oddzielnej strony. Program SharePoint ma szereg obrazów o średnim rozmiarze, których można użyć do użycia w formularzu krótkim od pełnego obrazu. Usługa Dataverse ma tylko dwa rozmiary: Miniaturka i Pełny.
Obliczenia
Dzielenie formuł z użyciem funkcji App.formula
Użycie formuł App.formulas i nazwanych formuł może pomóc w szybkim ładowaniu aplikacji i nawigowania po stronie, ponieważ umożliwia usłudze Power Fx podjęcie decyzji, kiedy należy ocenić formułę. Oznacza to, że niekoniecznie musi to oceniać w OnStart. Ponadto nazwane formuły mogą również pomóc przyspieszyć pracę. W szczególności jeśli masz długi skrypt, podzielenie go na nazwane formuły umożliwia bardziej wydajne obliczenia, ponieważ usługa Power Fx może zaplanować pracę i umożliwia ponowne użycie. Aby uzyskać więcej informacji, zobacz Formuły aplikacji.
Używanie współbieżności
Użyj funkcji Concurrent , aby umożliwić wykonywanie formuł w tym samym czasie. Ostrożnie używaj równoczesnego przetwarzania. Może zapewnić niewielkie przyspieszenie, ale jeśli używasz elementów, które są od siebie zależne, może to powodować problemy z synchronizacją i ograniczaniem przepustowości.
Odłóż istotne aktualizacje na nieblokujący krok interfejsu użytkownika
Ukończenie dużych aktualizacji źródła danych może zająć trochę czasu. Jednak użytkownicy oczekują, że interfejs użytkownika szybko zwróci do nich kontrolę. Zadania mogą być sekwencyjne, w których aktualizacja musi zostać zakończona, zanim użytkownik będzie mógł wykonać inne akcje lub asynchroniczne (aktualizacja może zakończyć oddzielne akcje użytkownika).
Przykładem czasochłonnego zadania synchronicznego jest potwierdzenie miejsca na koncercie. W przypadku większości czasochłonnych zadań synchronicznych, takich jak ten, często umieszcza się pasek postępu. Ten interfejs użytkownika faktycznie blokuje użytkownika, ale gwarantuje, że zadanie zostanie ukończone przed zaktualizowaniem innych elementów interfejsu użytkownika. Takie podejście może nie działać w przypadku aplikacji. Firmy zwykle obsługują dłuższe kroki sekwencyjne jako jawny krok biznesowy. Zostałeś zatwierdzony do przejścia do kolejnego etapu za pomocą sygnału procesu biznesowego. Przykładem jest zatwierdzenie. Zatwierdzenie może nastąpić szybko lub może zostać opóźnione. W interfejsie użytkownika możesz zasygnalizować, że proces został ukończony na kilka sposobów. Możesz włączyć przycisk, wyświetlić wiadomość, wysłać wiadomość lub włączyć część interfejsu użytkownika, taką jak element menu.
Przykładem zadania asynchronicznego jest ukończenie zamówienia. Klient aktualizuje koszyk zamówień, przechodzi przez zamówienie, a następnie składa zamówienie. Jednak kilka aktualizacji musi się zdarzyć, zanim klient otrzyma potwierdzoną datę wysyłki. W tym przykładzie data wysyłki nie jest czymś, co można łatwo podać od razu. , możesz odroczyć tę część aktualizacji do wiadomości e-mail wysłanej do klienta później.
W przypadku zadań synchronicznych często używasz kodu w usłudze Power Apps na potrzeby zadań blokujących interfejs użytkownika. Na przykład kod czeka, aż otrzyma wartość zwracaną, a następnie zwolni pasek postępu. Najlepiej zminimalizować tego typu sytuacje. Jednak w przypadku zadań, które wykorzystują jawny krok biznesowy lub zadań asynchronicznych, często korzysta się z zewnętrznej usługi do realizacji tych zadań, takich jak akcja w ramach usługi Dataverse, procedura składowana lub przepływ w Power Automate.
Odpowiednio umieść "ForAll"
Jeśli masz wyrażenie z ForAll i zbierasz, które wygląda tak:
ForAll(x, Collect(y, { … }))
Następnie odwróć to do
Collect(y, ForAll(x, { … }))
W pierwszym wzorcu każda reguła zależna od kolekcji y jest powiadamiana o zmianach i obliczana dla każdej iteracji x. W drugim wzorcu te reguły są oceniane tylko raz.
Rozważ unikanie odwołań do elementu Gallery.AllItems
Podczas pracy z usługą Power Apps najlepiej unikać odwoływania się do Gallery.AllItems, chyba że potrzebujesz wartości użytkownika. Dzieje się tak, ponieważ za każdym razem, gdy element AllItems jest odczytywany, jest generowana nowa tabela wyjściowa. Zamiast tego użyj elementu Gallery.AllItemsCount, jeśli chcesz tylko wiedzieć, ile elementów jest załadowanych.
Ostrożnie używaj pliku Gallery.TemplateSize
Aby zapewnić prawidłowe renderowanie galerii o elastycznej wysokości, ważne jest ustawienie rozsądnego rozmiaru domyślnego. Początkowo staramy się renderować jak najwięcej wierszy na podstawie tej wartości. Jeśli ustawisz domyślny rozmiar na 0, spróbujemy renderować wszystko, z wyjątkiem kilku przypadków brzegowych. Jeśli używasz formuły, upewnij się, że ustawiono wartość minimalną, gdy formuła może mieć wartość 0. Możesz na przykład użyć opcji Max (20, varFoo + rectBar.Height). W ten sposób, jeśli varFoo i rectBar.Height nie są jeszcze dostępne, co najmniej użyjemy rozsądnej wartości 20.
Uwaga: DelayOutput, szczególnie w przypadku wyszukiwania
Istnieje jedno sekundowe opóźnienie przed wykryciem zmian, co umożliwia ukończenie wpisywania zamiast wykrywania zmian dla każdego wpisywania.