I have been looking at the performance of the Single Integration API when including a large number of charts in a single mashup page. The reason for using this API rather than the Compatibility API is to minimise the level of coding required and to see whether we can achieve an acceptable result that would allow other teams within the organisation with no Qlik skills to create their own pages with embedded charts. Here are my findings so far:
Scenario A) All 17 charts (in 17 iframes) loaded at once - total time 18 seconds, but none of the charts are visible at all before then, leading to the impression that nothing is happening (there is a significant delay before the circular loading image appears and then a further delay while the charts load).
Scenario B) One chart is loaded first of all and then after a delay of 1.5 seconds (window.setTimeout), all 16 remaining charts are loaded - all charts are loaded in around 11 seconds, with the first chart loading in as little as under 2 seconds (and an average of just over 2 seconds). The circular loading icon appears immediately
Scenario C) Three charts are loaded first, then after a delay of 1.5 seconds (window.setTimeout), all 14 remaining charts are loaded in around 11 seconds, and the first three charts loading in as little as 3 seconds (but an average of 5-6 seconds). The circular loading icon appears immediately
There is a significant degree of variability in page load times, which I can only put down to networking issues. Although I have no proof, I attribute the difference in performance between Scenario A and Scenarios B and C to the handling of Qlik Sense sessions, where I assume that if we allow a short delay between loading the first one or three charts and the others, then a session is available to be used by the other iframes.
I hear that http/2 includes multi-threading that can also improve response times, but I have not been able to find any information regarding whether this is supported by Qlik Sense.
Any advice that could explain this behaviour and improve performance would be gratefully received.
@ErikWetterberg any ideas?