Move canonical knowledge for Microsoft-owned review domains into the Microsoft layer and document the skill/knowledge co-location policy. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Co-authored-by: Jesper Schulz-Wedde <jesper.schulzwedde@microsoft.com> Copilot-Session: 2a6ea875-d38e-4f30-aadb-0d606f9be231
1.3 KiB
| bc-version | domain | keywords | technologies | countries | application-area | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
performance |
|
|
|
|
Calculate expensive cues on a page background task
Contributions welcome — open a PR to refine or extend this article.
Description
Role-center cues and CardPart totals that run CalcFields, scans, or HTTP on the UI thread freeze the shell until they finish. Page background tasks exist to return the page immediately and fill the number later. Enqueue mechanics, cancellation, and the read-only child session are covered in microsoft/knowledge/ui/page-background-tasks.md. This file is the performance trigger: a cue whose value is not needed to open the page must not run on the render path.
Best Practice
Bind the cue to a page variable, enqueue a read-only calculation from OnAfterGetCurrRecord (not OnAfterGetRecord on a list), and apply the result in OnPageBackgroundTaskCompleted. Show a placeholder until then.
See sample: page-background-tasks-for-expensive-cues.good.al.
Anti Pattern
CalcFields or a ledger Count in OnOpenPage / OnAfterGetCurrRecord of a CueGroup CardPart with no background task. The Role Center waits on SQL the user may never look at.
See sample: page-background-tasks-for-expensive-cues.bad.al.