Этот пост, вероятно, потребует некоторой модификации. Я постараюсь объяснить ...
В основном, как тестировщик, я заметил, что иногда программисты, использующие веб-серверы на основе шаблонов, помещают много вещей в обработчики загрузки, которые затем выполняют такие действия, как загрузка элементов меню, изменение отображаемых значений в формах и т. д.
Например, страница, которая отображает вашу сетевую конфигурацию, загружает пустые (или фиктивные значения) для информации IP, а затем загружает блок переменных в функцию загрузки, которая устанавливает значения при отображении страницы.
Мой опыт (и интуиция) показывает, что это действительно плохая практика по нескольким причинам.
1- Если страница отображается в среде, где отключен Javascript (например, при использовании «Отправить страницу»), страница не будет отображаться должным образом в этой среде.
2- HTML-страницу становится очень трудно диагностировать, потому что то, что на самом деле отображается на экране, необходимо собрать вместе, запустив javascript в вашей голове (эта проблема менее заметна с Firefox из-за Firebug).
3- В большинстве случаев это не делается с помощью стандартной практики функции среды. Другими словами, на серверной части нет службы, внутренний код выглядит так же спагетти, как и итоговый HTML.
и, не совсем причина, скорее, корреляция:
Я заметил, что большинство программистов, которые это делают, обычно имеют множество ошибок, связанных с кодом, или критических ошибок интеграции.
Итак, я не говорю, что мы не должны использовать javascript, я думаю, что я говорю, когда вы создаете страницу динамически, динамическое поведение должно быть изолировано от серверной части, и вам следует избегать изменения отображаемой информации. после загрузки и рендеринга страницы.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Итак, актуальный вопрос: «Каковы преимущества / недостатки» генерации содержимого javascript?
вот один: многие вещи, которые хотят дизайнеры, сложно использовать в прямом html / css или поддерживаются не полностью. используя JQuery, например, для создания zebra-таблиц с ": odd". Иногда у серверной инфраструктуры нет хороших способов сделать это, поэтому способ получить самый чистый код на самом деле состоит в том, чтобы разделить его таким образом.
Я думаю, что вы говорите, что мы должны делать Прогрессивное улучшение с помощью JavaScript.
Также связаны: Прогрессивное улучшение с помощью CSS, Понимание прогрессивного улучшения и Прогрессивное улучшение на основе тестов.
Кто хочет сказать Google, что они делают это неправильно, вы или я? :)