Tính toán nhanh

Power Fx biểu thức rất mạnh mẽ và tự động thực hiện nhiều phép tính cơ bản cho bạn. Mặc dù Power Fx tự động hóa nhiều thứ cho bạn, nhưng bạn vẫn có thể tinh chỉnh các phép tính của mình sao cho nhanh nhất có thể.

Phục hồi dữ liệu

Sử dụng lựa chọn cột rõ ràng

Tính năng Lựa chọn cột rõ ràng (ECS) được bật theo mặc định cho tất cả các ứng dụng mới. Nếu nó không được bật cho ứng dụng của bạn, bạn nên bật nó. ECS tự động giảm số lượng cột được truy xuất xuống chỉ những cột được sử dụng trong ứng dụng. Nếu ECS không được bật, bạn có thể đang truy xuất nhiều dữ liệu hơn mức cần thiết, điều này có thể ảnh hưởng đến hiệu suất. Đôi khi, khi một ứng dụng kéo dữ liệu vào thông qua các bộ sưu tập, dòng dõi hoặc nguồn ban đầu của một cột có thể bị mất. Chúng tôi không biết liệu nó có được sử dụng hay không và chúng tôi sẽ loại bỏ nó bằng ECS. Bạn thường có thể buộc ECS hoạt động đối với cột bị thiếu bằng cách sử dụng biểu thức PowerFx ShowColumns sau tham chiếu bộ sưu tập hoặc bằng cách sử dụng nó trong một điều khiển.

Sử dụng hình ảnh trên thư viện, bảng và biểu mẫu một cách cẩn thận

Sử dụng phiên bản hình ảnh thu nhỏ cho thư viện ảnh và bảng biểu. Dataverse Dataverse hình thu nhỏ có kích thước nhỏ khoảng 1 kilobyte và được lưu trữ trực tuyến như một phần của bản ghi, hữu ích và nhanh chóng để hiển thị trên các điều khiển hiển thị bộ sưu tập. Tất cả các tham chiếu hình ảnh khác bao gồm tất cả SharePoint hình ảnh đều yêu cầu một lệnh gọi riêng và không nên đặt trong thư viện ảnh hoặc bảng. Đặt những hình ảnh cần gọi riêng vào biểu mẫu chi tiết. Cân nhắc không bao giờ hiển thị hình ảnh đầy đủ theo mặc định. Hình ảnh chi tiết đầy đủ có thể hữu ích và quan trọng đối với người dùng. Tuy nhiên, bạn có thể cung cấp những hình ảnh này cho người dùng thông qua hành động rõ ràng của người dùng, ví dụ như nút hoặc điều hướng đến một trang riêng biệt. SharePoint có nhiều hình ảnh có kích thước trung bình mà bạn có thể sử dụng trên một biểu mẫu không có hình ảnh đầy đủ. Dataverse chỉ có hai kích thước: Hình thu nhỏ và Hình đầy đủ.

Tính toán

Chia nhỏ công thức bằng App.formula

Việc sử dụng App.formulas và các công thức được đặt tên có thể giúp tăng tốc độ tải ứng dụng và điều hướng trang vì nó cho phép Power Fx quyết định thời điểm đánh giá một công thức. Điều đó có nghĩa là không nhất thiết phải đánh giá nó trong OnStart. Ngoài ra, các công thức được đặt tên cũng có thể giúp tăng tốc độ. Đặc biệt, nếu bạn có một tập lệnh dài, việc chia nhỏ nó thành các công thức được đặt tên sẽ cho phép tính toán hiệu quả hơn vì có thể lên lịch công việc và cho phép tái sử dụng. Power Fx Để biết thêm thông tin, hãy xem Công thức ứng dụng.

Sử dụng đồng thời

Sử dụng hàm Concurrent để cho phép các công thức được thực thi cùng lúc. Cẩn thận lựa chọn nơi sử dụng concurrent. Nó có thể tăng tốc độ đôi chút nhưng nếu bạn chạy các mục phụ thuộc lẫn nhau thì có thể gây ra vấn đề về thời gian và điều tiết.

Hoãn các bản cập nhật quan trọng cho giao diện người dùng không chặn bước

Những cập nhật lớn cho nguồn dữ liệu có thể mất một thời gian để hoàn tất. Nhưng người dùng mong đợi UI sẽ nhanh chóng lấy lại quyền kiểm soát cho họ. Các tác vụ có thể tuần tự, trong đó bản cập nhật phải hoàn tất trước khi người dùng có thể thực hiện các hành động khác hoặc không đồng bộ (bản cập nhật có thể hoàn tất riêng biệt với các hành động của người dùng).

Một ví dụ về nhiệm vụ đồng bộ tốn thời gian là xác nhận chỗ ngồi tại buổi hòa nhạc. Đối với hầu hết các tác vụ đồng bộ tốn thời gian như thế này, việc thiết lập thanh tiến trình là điều thường thấy. Giao diện người dùng này thực chất chặn người dùng nhưng đảm bảo rằng tác vụ được hoàn tất trước khi các thành phần giao diện người dùng khác được cập nhật. Cách tiếp cận này có thể không hiệu quả với ứng dụng của bạn. Các doanh nghiệp thường xử lý các bước tuần tự dài hơn như một doanh nghiệp rõ ràng bước. Bạn đã được chấp thuận để thực hiện bước tiếp theo thông qua tín hiệu quy trình kinh doanh. Một ví dụ là sự chấp thuận. Việc phê duyệt có thể diễn ra nhanh chóng hoặc có thể bị trì hoãn. Trong UI, bạn có thể báo hiệu quá trình đã hoàn tất theo nhiều cách. Bạn có thể bật một nút, hiển thị tin nhắn, gửi email hoặc bật một phần của giao diện người dùng như mục menu.

Một ví dụ về tác vụ không đồng bộ là hoàn thành một đơn hàng. Khách hàng cập nhật giỏ hàng, kiểm tra đơn hàng và sau đó đặt hàng. Nhưng phải có một số cập nhật trước khi khách hàng nhận được ngày giao hàng xác nhận. Trong ví dụ này, Ngày giao hàng không phải là thông tin bạn có thể dễ dàng cung cấp ngay lập tức. , bạn có thể hoãn phần cập nhật này lại và gửi cho khách hàng qua email sau.

Đối với các tác vụ đồng bộ, bạn thường sử dụng mã trong Power Apps cho các tác vụ chặn UI. Ví dụ, mã sẽ đợi cho đến khi nhận được giá trị trả về và sau đó nhả thanh tiến trình. Tốt nhất là nên giảm thiểu những tình huống như thế này. Nhưng đối với các tác vụ sử dụng bước kinh doanh rõ ràng hoặc các tác vụ không đồng bộ, việc sử dụng dịch vụ bên ngoài để hoàn thành tác vụ như Dataverse hành động, quy trình được lưu trữ hoặc Power Automate luồng là điều phổ biến.

Đặt 'ForAll' một cách thích hợp

Nếu bạn có biểu thức với ForAll và collect trông như thế này:

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

Sau đó, đảo ngược điều này thành

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

Trong mẫu đầu tiên, bất kỳ quy tắc phụ thuộc nào trên tập hợp y đều được thông báo về những thay đổi và được đánh giá cho mỗi lần lặp lại của x. Ở dạng thứ hai, các quy tắc này chỉ được đánh giá một lần.

Hãy cân nhắc tránh tham chiếu đến Gallery.AllItems

Khi làm việc với Power Apps, tốt nhất là tránh tham chiếu đến Gallery.AllItems trừ khi bạn cần các giá trị người dùng. Điều này là do mỗi lần AllItems được đọc, một bảng đầu ra mới sẽ được tạo. Thay vào đó, hãy sử dụng Gallery.AllItemsCount nếu bạn chỉ muốn biết có bao nhiêu mục được tải.

Sử dụng Gallery.TemplateSize một cách cẩn thận

Để đảm bảo các thư viện có chiều cao linh hoạt được hiển thị chính xác, điều quan trọng là phải đặt kích thước mặc định hợp lý. Ban đầu, chúng tôi cố gắng hiển thị càng nhiều hàng càng tốt dựa trên giá trị này. Nếu bạn đặt kích thước mặc định là 0, chúng tôi sẽ cố gắng hiển thị mọi thứ, ngoại trừ một vài trường hợp ngoại lệ. Nếu bạn đang sử dụng công thức, hãy đảm bảo đặt giá trị tối thiểu khi công thức có thể đánh giá là 0. Ví dụ, bạn có thể sử dụng Max (20, varFoo + rectBar.Height). Theo cách này, nếu varFoo và rectBar.Height chưa khả dụng, ít nhất chúng ta có thể sử dụng giá trị hợp lý là 20.

Có một giây trễ trước khi phát hiện ra những thay đổi, cho phép bạn hoàn tất việc nhập thay vì phải phát hiện ra những thay đổi sau mỗi lần nhập.