Forum Discussion
POWERBI EMBEDDED :MULTIPLE REPORTS IN MULTIPLE IFRAME ON SAME PAGE TAKES LONGER TO LOAD ON PAGE
It is 5 reports ,which are embeded.
My reports are fast in Power BI service but when embeded it is slow to render.
khush19 , that can have many factors. Just compare the time of one report vs one report in iframe, is there any difference in time?
- khush196 years ago
Resolver I
NO mostly all reports load at same time.
- Anonymous6 years agoNot applicable
Hi khush19
I think the problem you have is mostly due to the weight of the content you are rendering.
Each Power BI report will require its own IFrame - each frame will load similar amounts of markup and script resources from Power BI - and then the users browser needs to go through and render it all, executing all that JavaScript 5 times over.To me, 11 seconds sounds quite good in this situation (depending on how complex your reports are).
So, what can be done...
If you are writing a single-page (SPA) style application (React/Angular/Vue) then you should consider pre-fetching the content. This assumes that the page being loaded is not the first one that the user will hit. The intention being that you can preload content whilst the user is doing something else... then complete the render process when the page is requested.
Phased Embedding describes the process of breaking up the loading & rendering of reports: https://github.com/microsoft/PowerBI-JavaScript/wiki/Phased-Embedding + Bootstrapping is for pre-fetching resources: https://github.com/microsoft/PowerBI-JavaScript/wiki/Bootstrap-For-Better-PerformanceIf you are not working with a SPA style app - then the phased embedding might still be of use.
It could benefit the end users' browser if you loaded each report in turn. This way at least 1 report would load to completion before you started rendering another. This would let the browser prioritise requests accordingly. It might still take 11 seconds to render ALL reports - but the end user experience might be improved by having the ability to see the first report after only a couple of seconds.One last option that I can think of (and it depends on the size of reports and their contents)...
Have you considered adding each report to a single dashboard as a 'Live Page' - then rendering this single dashboard?
Each report would then render within a single Dashboard IFrame - reducing the number of resources that the browser would need overall, and might improve performance by quite a bit (again... this is heavily dependent on the content being displayed).
Interactions in reports pinned as live pages still work - including filters & slicers, but there might be limitations that I am not considering with this approach.Hope some of this helps.
Cheers, Matt
- Anonymous5 years agoNot applicable
Hi Anonymous ,
I'm getting the same issue as khush19 .
I'm using ReactJS and powerbi-client-react plugin and in my case is not possible to show all reports in a single dashboard as you suggested and neighter pre-fetch the content since what I need to show to the end-user are the dashboards that came from Power BI. Also I have only 100 lines by each table to render then I assume the weight is not a problem at all.
Isn't there any options to render the iframes asynchronous? I can't understand the relashionship between these iframes if I'm using different tabs Report. Why do we need to wait all data loaded to render the dashboards?