How to "cancel" the loading of a template in Blaze?


#1

Let’s say my Meteor web app, which uses Blaze and FlowRouter, has a template which loads lots of data and renders it all in one page. One of my users is very impatient, and once he/she realizes that this specific view is taking it’s time loading, decides to click away and try another page.

What do you expect to happen? New page to open?

WRONG. The page doesn’t do anything until all the sub-templates are rendered with the massive data set. You just have to sit and wait for it to finish, until anything else can happen. If the user clicks on a link, it won’t make a difference until the view is rendered.

Is there a way to prevent this from happening? Do I need to use some magic pattern to enable my user to navigate away from a slowly loading page?


#2

Not in my experience - the event loop needs to finish doing all its stuff. This is just one of the things you have to design against, using incremental loading and things like that.

I feel your pain.