Варинт 1. Используйте стили для
BODY
или
HTML
(`
nojs
`, например), который при загрузке JS в событии
onload
скриптом уберете. А для всех элементов управления требующих JS установите видимиость в
none
.
.nojs button[onclick],
.nojs form[onsubmit],
.nojs .ajaxform {display: none}
Вариант 2. Подгружайте интерактивные элементы через AJAX или рендерите с помощью JS. Так даже лучше - поисковики ругаться меньше будут.
Вариант 3. Используйте
SSR -
Server Side RenderingОбязательно в
<noscript>
сделайте уведомление для пользователя.
Самый лучший вариант - использовать подход
ненавязчивого JS (
unobtrusive JavaScript).
Гугл в помошь, а вкратце - сайт должен работать и без JS. Или, хотя-бы, отдавать вразумительную инфу.
Супер-дупер подход - вообще предусматривать
альтернативные варианты подачи информации для всего - медиа, графики, и тп, учитывать, что сайт должен читаться авточиталками для слабовидящих, управляться интуитивно, грузиться на слабых линиях.
И таки-да: это и есть работа настоящего фронт-ендера, которая стоит охрененно дорого, потому-что подразумевает до хера знаний и требует до едрени-фени терпения и времени. Именно поэтому настоящий фронтер даже в России имеет зарплату разом больше
200k₽!
Есть к чему стремиться. Но это уже другая история, которая называется -
UI/UX -
User Interface/User eXperiance - учет опыта пользователя в интерфейсах.