First off, let me start by saying I am a T&T noob - and am 'learning as I go'. I've been using T&T for about a month now, developing for some campaigns for my organization.
One basic issue that I have revolves around the difference between mBoxCreate() and mbodDefine()/mboxUpdate() - especially when it comes down to performance.
Right now, we create mboxs with mboxCreate within our global provisioning campaign to run our tests/experiences. So each campaign we create typically creates is own mbox (or mutiple mboxs) for that campaign. This is working fine, but our site optimization team is on us to see if the mboxs can be created after the DOM is ready (right now, its happening before).
By switching to a more dynamic model, we might be able to facilitate the site speed team and make them "happy" - I'm just curious on the downsides of this plan, if if using mboxDefine/mboxUpdate is more or less efficient than just doing it the way we always have been via mboxCreate.
mboxCreate will load content inline. Typically content will appear to load like any other piece of content with the downside that it will slow down the load time of your page slightly. Adobe generally recommends no more than 7-8 mboxes per page to minimize performance impact.
mboxDefine with mboxUpdate on domready will improve initial render time, but will cause test content to flicker. This flicker may contaminate your results (e.g. you may have a winning experience but the flicker drags down performance. Alternately, it may draw attention to an otherwise ignorable element). If you go this route, you are better off using Adobe DTM to deploy mboxes. It will automatically hide contents within an mbox and show on domready. You can also code this manually through an offer.
Alternately, you could use Target Standard or Target Advanced with global mboxes to cut down the number of content mboxes.