OK, so this is now working pretty well I think. Not perfect, but reasonably smooth.
https://www.plughole.com/CustomDeckForumExample.html
I used @MarkHunte’s example: Two Tips, css vars and HypeScenePrepareForDisplay to load the iFrames and the data on every page.
The preload is only effective if the transition is not instant. Push left/right up/down transitions work really well, but they make me dizzy, so I opted for a fade for now. Maybe I will somehow try to specify a delay before the transition starts to allow for extra time to load content, but that would likely delay the PrepareForDisplay as well and end up with the same result.
<script>
function onLoadCallback(hypeDocument, element, event) {
hypeDocument.functions().GetData();
hypeDocument.functions().ImportIFrames();
}
if("HYPE_eventListeners" in window === false) {
window.HYPE_eventListeners = Array();
}
window.HYPE_eventListeners.push({"type":"HypeScenePrepareForDisplay", "callback":onLoadCallback});
</script>