Поддержка пользователей без JS

Список разделов Общие разделы Оффтопик

Описание: Здесь можно обсудить всё, что не связано с тематикой сайта.
Модератор: Поддержка

Сообщение #1 factotum » 30.07.2014, 19:16

Работа над одним из проектов навела на мысли о поддержке пользователей без js.
Речь идет о таком функционале, как спойлер, навигация через offcanvas, вывод некоторых вспомогательных блоков (например, панель поиска).

С одной стороны есть мнение, что доля пользователей без поддержки JS стремиться к нулю. С другой, такие пользователи имеют право на существование.

Хотелось бы увидеть другие взгляды на необходимость такой поддержки.
factotum
Автор темы
Откуда: Люксембург
Репутация: 234
С нами: 12 лет

Сообщение #2 Gravi » 30.07.2014, 19:28

Если у вас большой, посещаемый проект - то такая поддержка была бы полезна тем пользователям, у которых нет JS. А если же нет, то число таких пользователей будет исчислатся еденицами
Gravi M
Аватара
Репутация: 7
С нами: 10 лет 1 месяц

Сообщение #3 Sumanai » 30.07.2014, 19:33

Разработчикам движков, типа phpBB и phpBBex, конечно же стоит, так как они могут использоваться на популярных проектах.
А администраторам конкретных сайтов- по обстановке.
Sumanai M
Аватара
Репутация: 1677
С нами: 11 лет 2 месяца

Сообщение #4 factotum » 30.07.2014, 21:23

самое интересное, а сколько пользователей без js на популярный проектах и кто они? не вижу такой статистики у себя
factotum
Автор темы
Откуда: Люксембург
Репутация: 234
С нами: 12 лет

Сообщение #5 VEG » 31.07.2014, 10:02

Согласен, что некоторые вещи можно сделать только при помощи CSS, всегда стараюсь так делать, если это не тормозит и не является серьёзным переусложнением. Например, на vegalogic.com изначально раскрывающееся меню (что появляется при ширине 320 пикселей) я сделал исключительно средствами CSS (хитрость с checkbox и следующим за ним элементом — для спойлера пришлось бы делать такое же). Но браузера неприятно «тупили» при открытии меню, поэтому переделал на JS — отзывчивость сразу же поднялась в несколько раз.

Ну а что касается пользователей, что бродят по вебу без JS. Я думаю, они сами отлично знают, что из-за этого многие сайты поломаются, поэтому когда увидят, что что-то на сайте не работает — активируют JS для этого сайта (вероятнее всего ведь JS выключен чем-то вроде NoScript). Я к тому, что в приоритете баланс простоты реализации и производительности: если решение на JS проще и быстрее, чем решение исключительно на CSS, я бы всегда выбирал первое. Без JS в вебе делать нечего.

Кто-то отключает JS для того, чтобы отсечь вирусам возможность запустить себя. Но на самом деле сейчас браузера очень круто защищены, в Chrome и подобных браузерах мало найти уязвимость в движке, нужно найти ещё и незакрытую уязвимость в ОС или в родительском процессе, поскольку процессы с открытыми сайтами запускаются вообще без каких-либо прав. Сейчас такая же штука в разработке и для Firefox, обещают в начале следующего года зарелизить. Хотя в принципе достаточно просто держать у себя актуальное на данный момент ПО без известных уязвимостей (то есть всегда обновляться) — и можно не переживать по поводу вирусов. Ещё бы Mozilla поддержала Pepper Plugin API (безопасная и кроссплатформенная альтернатива используемому в Firefox древнему Netscape Plugin API) — вообще было бы замечательно. Но они, к сожалению, воротят нос и пихают JS везде где нужно и где нет. Хотя на самом деле идея Native Client и Pepper Plugin API от Google — очень круты. Нативный код в вебе — лучше и быстрее не придумаешь! :)

Добавлено спустя 8 минут 42 секунды:
Хотя какие-то минимальные вещи по классу no-js у body, конечно, можно сделать. Например, спойлеры можно сразу сделать открытыми в таком случае (без возможности закрыть) :)
VEG M
Администратор
Аватара
Откуда: Finland
Репутация: 1653
С нами: 12 лет

Сообщение #6 factotum » 31.07.2014, 13:19

VEG:по классу no-js у body
с этого все и началось.
для большинства "примочек" проверяется наличие поддержки браузером в modernizr. последний добавляет результат в класс html, изменяя исходный "no-js" на что то-то подобное: <html class=" use-js use-no-touch use-no-csstransforms3d" lang="en-US">
Остается, только раскидать методы реализации по классам. Вроде такого:
Код: Выделить всё
// Off canvas navigation
// --------------------------------------------------
.offcanvas {
  position: fixed;
  top: 0;
  bottom: 0;
  z-index: 1050;
  overflow: hidden;
  -webkit-overflow-scrolling: touch;
  outline: 0;

  .use-csstransforms3d & {
    transition: transform .3s ease-out;
    transform: translate3d(-100%,0,0);
   
    &.in {
      transform: translate3d(0,0,0);
    }
  }
 
  .use-no-csstransforms3d & {
    left: - $sidebar-left-width;
    transition: left .3s ease-out;
    &.in {
      left: 0;
    }
  }
}
Все это о том, что реализовать поддержку задача довольно банальная. Но так и не пойму, как окупятся затраты на время реализации - статистики по пользователям без JS нет. Как бы не получилось, что потрачу время исключительно для ботов.
Последний раз редактировалось factotum 31.07.2014, 16:16, всего редактировалось 1 раз.
factotum
Автор темы
Откуда: Люксембург
Репутация: 234
С нами: 12 лет

Сообщение #7 VEG » 31.07.2014, 14:27

Яндекс.Метрика умеет собирать такую статистику (не знаю, насколько она точна). У себя на сайтах я удалил Google аналитику и Яндекс Метрику (тяжёлые они) в пользу простого счётчика от liveinternet.ru, но если у вас есть Метрика — можете посмотреть, как много ваших пользователей ходит к вам с выключенным JS.
VEG M
Администратор
Аватара
Откуда: Finland
Репутация: 1653
С нами: 12 лет

Сообщение #8 factotum » 31.07.2014, 16:40

в рабочем проекте метрики не нашлось. а вот в другом данные нашлись:
Код: Выделить всё
JavaScript отключен или не поддерживается 0,9%
не так уже и мало, если это не боты. добавлю к данным по пользователям результат проверки на поддержку JS. Посмотрим, ху из ху
factotum
Автор темы
Откуда: Люксембург
Репутация: 234
С нами: 12 лет


Вернуться в Оффтопик