これには、さらに多くの要因が関係しています。リンクや選択リストオプションなどの小さな要素を挿入する場合、JavaScriptでそれらを動的に生成することは問題ではありません。一連の複雑なHTMLを繰り返し生成する場合は、マークアップにhtmlのテンプレートを作成して(Webデザイナーがそれを維持できるように)、CSSでテンプレートを非表示にすることをお勧めします。次に、javascript(jQueryなど)を使用してテンプレートのクローンを作成し、それをDOMに挿入します。これにより、より多くのネイティブ実装を使用して、HTMLを解析する厄介なJavaScriptをすべて使用せずにDOMツリーを拡張できるという利点があります。
しかし、最終的に実用性はこれに帰着します:誰がコードを維持するのでしょうか?よりエレガントな解決策は、メンテナが理解できるものでしょうか?それとも、すべてをjavascriptに入れることで(その優雅さにもかかわらず)、将来必要になったときにジュニアコーダーが拡張または更新できるようになるでしょうか?
Webブラウザーの大部分は、少なくともWebブラウジングに関して、ユーザーが実際に「必要とする」ものに対して途方もなく強力なハードウェアで実行されます。このため、Javascriptの非効率的なソリューションが差し迫った問題になることはめったにありません。ただし、モバイルブラウザをターゲットにしている場合は、効率==バッテリー寿命です。したがって、大量のdom操作を行っている場合は、上記の提案を検討して、それが自分のケースで機能するかどうかを確認してください。
頑張ってください!-ブレンダン