Часто для действительно сложных шаблонов я просто сохраняю блоки html в виде строк в объектах JSON для последующего доступа ... например:
var temp = {
header : "<div class='foo'><h3>{HEADER}</h3></div>",
content : "<div class='bar'><p>{COPY}</p></div>"
}
А потом просто сделайте замену тем, когда все вернется. Таким образом, разметка несколько отделена от логики загрузки данных, поэтому замена шаблонов и т. Д. Может быть немного быстрее.
var text = "I am the header text";
var head = new String(temp.header);
$(target).append(head.replace("{HEADER}",text));
В любом случае, этот подход хорошо сработал для меня с виджетами AJAX и тому подобным, где существует вероятность, что дизайн может радикально измениться вокруг.