Join us for an expert-led overview of the tools and concepts you'll need to pass exam PL-300. The first session starts on June 11th. See you there!
Get registeredPower BI is turning 10! Let’s celebrate together with dataviz contests, interactive sessions, and giveaways. Register now.
Hi All,
I had created a report & embed same in client's webpage successfully. I am using query parameter to dynanically update baseurl based on client's interaction. when client access particular report then update parameter & Refresh dataset API Call but it takes approx 1 min to complete refresh cycle & load into webpage.
My issue is during this time client is able to see previous client's data due to baseurl taking time to dynamically change when API call.
I reseached on internet & found that post purchasing PowerBI Embed Capacity( A SKU) above problem will be solve but I am not sure about this.
Anybody have idea how to solve above issue...?
Solved! Go to Solution.
Hi, @ViralGajjar2904
If your dataset supports it, configure incremental refresh in Power BI. By updating only the data that has changed, you can reduce the time required to refresh the data. Make sure your data model is optimized for performance. This includes reducing dataset size, using efficient DAX queries, and removing unnecessary columns and rows.
Purchasing Power BI Embedded Capacity (A SKU) can significantly improve performance. This dedicated capacity ensures your reports have more resources and less contention with other tenants, resulting in faster data refreshes and parameter updates. Further improve performance with the dedicated capacity of caching that comes with the Power BI service.
Optimize API calls to reduce latency. This might include batching requests where possible and ensuring API calls don't block.
Leverage asynchronous operations to avoid blocking your application's main thread while waiting for an API response.
async function refreshReport() {
await updateParameters();
await refreshDataset();
// Update UI or handle data post-refresh
}
Implementing load indicators:
<!-- Example HTML for loading indicator -->
<div id="loadingIndicator" style="display: none;">
Loading, please wait...
</div>
// Example JavaScript to show/hide loading indicator(JS)
function showLoadingIndicator() {
document.getElementById('loadingIndicator').style.display = 'block';
}
function hideLoadingIndicator() {
document.getElementById('loadingIndicator').style.display = 'none';
}
async function updateAndRefresh() {
showLoadingIndicator();
await refreshReport();
hideLoadingIndicator();
}
If this post helps, then please consider Accept it as the solution and kudos to this post to help the other members find it more quickly
Hi, @ViralGajjar2904
If your dataset supports it, configure incremental refresh in Power BI. By updating only the data that has changed, you can reduce the time required to refresh the data. Make sure your data model is optimized for performance. This includes reducing dataset size, using efficient DAX queries, and removing unnecessary columns and rows.
Purchasing Power BI Embedded Capacity (A SKU) can significantly improve performance. This dedicated capacity ensures your reports have more resources and less contention with other tenants, resulting in faster data refreshes and parameter updates. Further improve performance with the dedicated capacity of caching that comes with the Power BI service.
Optimize API calls to reduce latency. This might include batching requests where possible and ensuring API calls don't block.
Leverage asynchronous operations to avoid blocking your application's main thread while waiting for an API response.
async function refreshReport() {
await updateParameters();
await refreshDataset();
// Update UI or handle data post-refresh
}
Implementing load indicators:
<!-- Example HTML for loading indicator -->
<div id="loadingIndicator" style="display: none;">
Loading, please wait...
</div>
// Example JavaScript to show/hide loading indicator(JS)
function showLoadingIndicator() {
document.getElementById('loadingIndicator').style.display = 'block';
}
function hideLoadingIndicator() {
document.getElementById('loadingIndicator').style.display = 'none';
}
async function updateAndRefresh() {
showLoadingIndicator();
await refreshReport();
hideLoadingIndicator();
}
If this post helps, then please consider Accept it as the solution and kudos to this post to help the other members find it more quickly