Skip to content

Ajaxify landing

Implement the landing page using asynchronous javascript requests to improve responsiveness.

The page initially sends an ajax request to get the pipeline ids, and then for each id sends an ajax request to get pipeline information, which is then displayed.

Note that this approach represents one extreme of asynchronicity, where info for each pipeline is requested and handled separately. This improves the perceived responsiveness, since the user sees the info being populated "live". The potential downside of this is the many ajax requests we need to make.

If we find this to be an issue there are multiple alternatives at different points in the spectrum of request granularity. In the other extreme we would have one request for all pipeline ids (in which case the get_pipeline_ids ajax request will not be required). As a middle ground we could chunk together in one request multiple (but not all) pipeline ids.

Finally note that by moving more logic to client side javascript we reduce our ability to test some features with just the django test server/client, and to test fully we would have to move to a more end to end approach using integration with a real browser with selenium or a similar technology. But that's a discussion for another day.

Edited by Alexandros Frantzis

Merge request reports