I'm trying to create a page with widgets on it using Node.js and Dust as a template engine. I would like the widgets to be standalone as possible with their own css, js and html.
Which of the follow three method is best? which will be the fastest?
Option a: using res.render and rendering only once
pseudo code: 1) call page route (app.get('/', routes.somePage); 2) load config file (say /views/somePage.cfg) listing all widgets on somePage. 3) get widget data if needed (say access another server for the data). 4) build 1 context object and pass to render 5) call res.render with context containing page data + all widget's data 5) somePage template will include partials to build page, including widget partials.
Option b: using res.write
pseudo code: 1) call page route (app.get('/', routes.somePage); 2) load config file (say /views/somePage.cfg) listing all widgets on somePage. 3) use app.render() to render widgets + page (running js to get each widget data) 4) use res.write() to build a complete page.
Option c: using helpers
pseudo code: 1) call page route (app.get('/', routes.somePage); 2) use app.render() 3) use custom helper to render different widgets. custom helper will actually grab the data and might use app.render inside to build the widget during render time..
I went through a few things, I ended up, after discussion on Node.js IRC down the path of doing Option A...It seems it's the correct path, to build one master context and provide it to one template..
I ended up constructing a global context object, and have certain widgets add to it's json. It works like a charm!
There is currently no discussion for this recipe.
This recipe can be found in it's original form on Stack Over Flow.