Это редакционная статья моего последнего JavaScript-бюллетеня, вы можете подписаться здесь.
В последнее время было много дискуссий о роли JavaScript в современных веб-страницах и веб-приложениях. Кажется, все это началось с забавной (но не совсем не правдивой) статьи под названием « Каково это учить JavaScript в 2016 году», в которой автор выражает озабоченность фрагментированным состоянием экосистемы JavaScript и количеством инструментов, необходимых для запуска JavaScript проект сегодня.
В последовавших дебатах был интересный опрос в Твиттере, который привлек мое внимание. Он спросил, можно ли в 2016 году создать сайт, который не работает без JavaScript. Из 4157 человек, которые ответили, 42% (1746 человек) заявили, что это так. Ого!
Как редактор JavaScript-канала SitePoint вы можете ожидать, что я окажусь среди этих 42%. Ну, извините, что разочаровал, но боюсь, что нет. Как недавно отметил мой коллега Патрик , все зависит от контекста. Сохранение непредвзятости в отношении наиболее доступного и наиболее надежного метода решения проблемы неизбежно приведет к лучшему решению. Вот небольшой пример, чтобы проиллюстрировать это:
Некоторое время назад я помогал кому-то на форумах SitePoint создать страницу сравнения продуктов, на которой пользователь мог выбрать несколько продуктов, нажать кнопку и получить соответствующие спецификации продукта. Человек, которому я помогал, уже создал страницу, и продукты были помечены как элементы списка ( <li>
Моим первоначальным решением было добавить скрытый элемент <input>
Я кодировал это решение, оно работало нормально, и все были довольны… пока я не наткнулся на другого пользователя форума под названием PoPSiCLe. Вот что он должен был сказать об использовании JavaScript для работы (отредактировано, чтобы удалить ругательство):
* Headdesk * Я не могу даже … нет, извините. Я не могу Люди действительно делают код, подобный этому?
«Немного грубовато», — подумал я, но, спросив, в чем проблема, обнаружил гораздо более точное решение, которое я полностью упустил из виду. А именно, чтобы добавить флажок и метку к каждому элементу <li>
input:checked+label
Не нужно было ни одной строки JavaScript, чтобы сделать решение более доступным по умолчанию! Вот демонстрация того, чем мы в конечном итоге заинтересовались.
Это небольшой (и несколько надуманный) пример, но он хорошо иллюстрирует это. То, что вы можете что-то делать с помощью JavaScript, не обязательно означает, что вы должны это делать. Сохранение непредвзятости в отношении лучшего инструмента для работы не только приведет к наиболее доступному и надежному решению, но также означает, что вы также можете узнать что-то одно или два на своем пути. Это также причина, по которой я приветствую все споры о позиции JavaScript в Интернете сегодня.
Но что вы думаете? В 2016 году можно ли создать сайт или приложение, которое работает только с включенным JavaScript? Вы делаете прогрессивное улучшение? Позвольте мне знать в комментариях ниже.