Я стараюсь генерировать как можно меньше HTML-кода из JavaScript. Вместо этого я предпочитаю манипулировать существующей разметкой всякий раз, когда могу, и генерировать HTML, только когда мне нужно динамически вставить элемент, который не является подходящим кандидатом для использования Ajax. Я полагаю, что это значительно упрощает поддержку кода и быстрое внесение в него изменений, поскольку разметку легче читать и отслеживать. Мое эмпирическое правило таково: HTML - для структуры документа, CSS - для представления, JavaScript - для поведения.
Тем не менее, я видел много JS-кода, который генерирует холмы HTML, включая целые формы и модальные диалоговые окна, насыщенные контентом. В общем, какой метод считается лучшей практикой? В каких случаях JavaScript должен использоваться для генерации HTML, а когда нет?