Power Pages uses aggressive server-side caching for Liquid-based FetchXML queries. Even if Dataverse updates immediately, the rendered data via Liquid can lag for up to 5 minutes, especially when:
You've used fetchxml in a .html or .webpage file
Output is rendered using entitylist or any custom Liquid loop
Portal's output cache hasn't invalidated yet
Even worse—Liquid has no awareness of dynamic changes unless the cache expires or you bypass it.
4 Ways to Force Real-Time Data Rendering
1. Call Power Pages Web API via JavaScript
Skip Liquid. Use a JS fetch() call to /_api for fresh data straight from Dataverse.
javascript
fetch("/_api/custom_table_records(GUID)")
.then(r => r.json())
.then(data => {
console.log("Live data:", data);
// Use this to dynamically update the UI
});
This bypasses the Liquid rendering layer entirely. Works great with Ajax-loaded components.
2. Use Client-Side Logic to Refresh Record Data
If you must stick with Liquid (e.g., SEO-friendly content), use JavaScript after page load to refresh just the updated fields via a light Web API call, like:
// Replace record ID dynamically
let recordId = "YOUR_RECORD_ID";
fetch(`/_api/custom_table_records(${recordId})`)
.then(res => res.json())
.then(data => {
document.querySelector("#recordStatus").textContent = data.statuscode;
});
This blends static Liquid and dynamic client updates. Add a loading spinner if needed.
3. Temporarily Disable Output Caching (for debugging only)
Under Site Settings, add:
Name: Web Page Output Cache Enabled
Value: false
Don't leave it off for long—performance hits hard in production.
4. Force Data Consistency via Flow/Webhook
If you're updating from Azure and need it reflected instantly, consider having the Azure function trigger a Power Automate Flow that does a redundant update or logs to a portal-visible table—something the portal notices immediately (dirty trick, but it works).