← Back to team overview

dhis2-devs team mailing list archive

[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
<https://docs.google.com/document/d/1-1G1GEpA3I4ZXp7MI6yU2LhG_ion9MVBDav8Fbx9fec/edit#>
for
more information.
The code commits are pushed in here
<http://bazaar.launchpad.net/~nashorn-gsoc/dhis2/nashorn/changes> 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*