[Google Summer of Code - DHIS 2] - Speeding up the Initial Rendering of DHIS2 Apps.

Hi DHIS2 Devs,

I am Dehan de Croos from University of Moratuwa - Sri Lanka. I took part in DHIS2 for this years GSoC program. The following is a brief description of the problem that I was trying to solve.

One of the main drawbacks of SPA’s are the initial Rendering latency. The framework initialization of the initial load of content can hang the user for as much as a minute or more. This happens when the web app grows sufficiently in complexity with time. Therefore the UI logic which was divided across multiple views now has to be pulled into and rendered to provide one unified viewing experience. Hence it can be frustrating for the user in the very initial load.

The solution is motivated by the historical best practice of offloading your complex-logic to the back end. Hence the proposed solution it is to render the page contents into a static page in the back end. Enter the concept of Pre-rendering.

The following document is an overview of the work I did on DHIS2 to explore this hypothesis and come up with some guidelines on how this per rendering can be achieved without an isomorphic JS backend [JAVA-Spring]. The documentation points to and explains the changes done in the form of a use case on DHIS2’s Open Web Apps Platform. This provides third party app developers an option to pre render their content if needed.

Please follow here for more information.

The code commits are pushed in here in the “Nashorn” Feature branch.

Thank you DHIS2 for this wonderful opportunity and thank you Mark Polak for putting up with my constant nagging and for all the tireless support and guidance extended amidst your busy work schedule!

best regards,

Dehan de Croos