web
You’re offline. This is a read only version of the page.
close
Skip to main content

Notifications

Announcements

Community site session details

Community site session details

Session Id :
Power Platform Community / Forums / Power Apps / Advice Needed to Impro...
Power Apps
Suggested Answer

Advice Needed to Improve Slow Performance in Canvas App

(1) ShareShare
ReportReport
Posted on by 1,026
Hi,
 
I am looking for some advice for resolving performance issues in a Canvas App that is being run as a Page in Dynamics 365.
 
The app displays various controls to allow filtering of a Dataverse table, where the results are then shown in a Gallery control. Each gallery control item displays several fields from a related Contact record as well as a status for 3 slots per week day (totalling 21 individual controls).
 
I have already been through a lot of the best practices and recommendations to reduce the amount of data being returned, and to avoid using specific function calls and lookups etc, and the query itself seems to be fairly quick to return. The main issue I am now facing is when scrolling the gallery and the app needs to display the next batch of records, it will freeze up for around 5-10 seconds.
 
I am still looking at ways to reduce the number of controls on the screen as the App Checker within Power Apps studio has calculated the screen complexity as 598 (with the recommended threshold being 300). The app uses a lot of containers in order to arrange and group controls and allow them to flow correctly when screen sizes change etc. I am assuming that these containers would be contributing to the overall complexity but I cannot find any documentation on how the complexity score is calculated. Is there perhaps a better way to arrange controls on the screen without the need for nesting containers.
 
Does anyone have any thoughts on the above, or even some other ways/best practices that I could use to potentially improve the usability of the app so that it is more responsive to the end users?
 
Thanks in advance
Categories:
I have the same question (0)
  • Suggested answer
    SaiRT14 Profile Picture
    1,990 Super User 2025 Season 2 on at
    Hi  
     
    Instead of 21 controls, consider using a single HTML Text Control to render formatted data for each gallery item. This reduces rendering complexity significantly.
    Use the Concurrent function to prefetch the next batch of data while the user is scrolling Concurrent(
        Set(nextBatch, Filter(DataSource, ID > Last(VisibleRecords).ID)),
        Set(currentBatch, Filter(DataSource, ID <= Last(VisibleRecords).ID))
    )
     
    Use collections to load and cache data at the app start. This reduces the need for real-time queries: ClearCollect(FilteredData, Filter(TableName, YourCondition))
     
    If you have a long list, use the Items property to load smaller batches incrementally FirstN(Sort(TableName, ColumnName, Ascending), 50)
     
    Use pagination techniques by dynamically loading more records as the user scrolls: Maintain a PageIndex variable to track the current data batch. Use Collect to add new items to the gallery data source If(PageIndex < TotalPages, Collect(ItemsCollection, FetchNextPage()))
     
    pls try - thanks
     

Under review

Thank you for your reply! To ensure a great experience for everyone, your content is awaiting approval by our Community Managers. Please check back later.

Helpful resources

Quick Links

Forum hierarchy changes are complete!

In our never-ending quest to improve we are simplifying the forum hierarchy…

Ajay Kumar Gannamaneni – Community Spotlight

We are honored to recognize Ajay Kumar Gannamaneni as our Community Spotlight for December…

Leaderboard > Power Apps

#1
WarrenBelz Profile Picture

WarrenBelz 711 Most Valuable Professional

#2
Michael E. Gernaey Profile Picture

Michael E. Gernaey 319 Super User 2025 Season 2

#3
Power Platform 1919 Profile Picture

Power Platform 1919 268

Last 30 days Overall leaderboard