A quick 'n' dirty example to clear up a misunderstanding I saw on a forum, that d3 requires that all data be loaded at once. In fact, d3 is an excellent tool for working with real-time data.
Here, i'm first loading the data for the background map. The data for each province is loaded when the select menu is changed. Once the province SVG has been drawn its bounding box is measured so as to compute a translate and scale that will fill the "canvas". See Mike Bostock's Zoom to Bounding Box example. When another province is chosen the first is hidden but a reference to each provinvce SVG is kept to avoid loading the data for it again.
Population, Land area in square kilometres, and Population density per square kilometre all 2011 data, per Census Subdivision Digital Boundary Files - 2015.