I'm using d3 to visualise a large dataset that's being read from a MySQL DB.
At any point in the visualisation there's a very manageable amount of data needed on screen, but the problem I'm facing is that depending on user navigation, there's a vast amount of data that could be needed from the DB (i.e. it's not feasible to load all the possibility needed data upfront like pretty much all the d3 examples I've seen so far).
Does anyone know if there's any recommendations/examples how to handle a situation like this specifically in d3? For example, I'm thinking about things like...
is it wise to use node "on click" events to trigger requests to the DB for more information (that feels the natural place to do it, but I'm worried it could cause lags in updating the visualisation).
or do I perhaps need to stay at least 1-node-click ahead of the game (i.e. load all of the data required by any possible single node-click, and keep doing that asynchronously every time a node is clicked).
should I anticipate performance problems with updating my definition of "data" (and it's parent-child hierarchy), every time a node is clicked.
Appreciate I can learn this through trial-and-error, but I'm hoping there's some people out there who've learnt the hard-way and are prepared to share their experience! Thanks for any thoughts!
Does anyone know if there's any recommendations/examples how to handle a situation like this specifically in d3? For example, I'm thinking about things like...
is it wise to use node "on click" events to trigger requests to the DB for more information (that feels the natural place to do it, but I'm worried it could cause lags in updating the visualisation).
or do I perhaps need to stay at least 1-node-click ahead of the game (i.e. load all of the data required by any possible single node-click, and keep doing that asynchronously every time a node is clicked).
should I anticipate performance problems with updating my definition of "data" (and it's parent-child hierarchy), every time a node is clicked.
Appreciate I can learn this through trial-and-error, but I'm hoping there's some people out there who've learnt the hard-way and are prepared to share their experience! Thanks for any thoughts!