Когда можно использовать Javascript, а когда нет? - PullRequest
20 голосов
/ 27 мая 2010

Является ли хорошей практикой не использовать много javascript / jquery?Должны ли мы избегать этого в максимально возможной степени (для хорошей доступности)?

Когда нормально использовать JavaScript, а когда нет в веб-дизайне и разработке?В каких случаях и при каких условиях?

Обновление:

Я спрашиваю о публичных веб-сайтах.

Ответы [ 12 ]

22 голосов
/ 27 мая 2010

Я должен с уважением не согласиться с плакатами, которые говорят, что вы не должны использовать JavaScript, или использовать его экономно, или сделать так, чтобы он изящно ухудшался.

Причина в том, что в настоящее время подавляющее большинство людей поддерживает JavaScript и высоко ценит опыт, подобный настольному, который он может предоставить с веб-сайта. Действительно, у кого не включен JavaScript? Люди действуют так, как будто это статистически значимая группа. Это не так.

Не использовать JavaScript - это немного похоже на придирчивость к переменным размерам (о, я могу использовать 16-разрядное целое число вместо 32-разрядного, чтобы сэкономить память). Если вы не делаете какой-нибудь монстр-проект для сотен тысяч людей, где окупаемость времени, потраченного на то, чтобы сделать ваш сайт изящно деградирующим, фактически положительна, вы должны использовать JavaScript так свободно, как вам нравится. Два человека, которые не могут получить к нему доступ, потому что отключили его, - параноики и, вероятно, не те люди, которых вы хотите видеть в качестве клиентов.

Только мои 2 цента.

12 голосов
/ 27 мая 2010

+ 1 ко всему, что сказал мистер Эксперт.

Еще одна вещь, которую нужно добавить: не хорошо для доступности, чтобы критические функции вашего сайта полагались на JavaScript Если JS отключен в браузере пользователя, он все равно сможет отправлять все формы, нажимать все кнопки и так далее. Ваш веб-сайт должен изящно ухудшаться при отсутствии JavaScript.

Одно примечание для форм:
Там, где это возможно, используйте Hijax подход к отправке форм. Заставьте их работать, используя традиционные обновления страниц, а затем используйте JavaScript, чтобы «перехватить» отправку формы и сделать это с AJAX. Если на клиенте отключен AJAX, формы будут работать нормально.

6 голосов
/ 27 мая 2010

Прежде чем я скажу что-либо, позвольте мне прояснить, что все это относительно - это все о ВАША ЦЕЛЕВАЯ АУДИТОРИЯ . Ответ может быть на противоположных концах спектра, если большинство вашей целевой аудитории - инвалиды в Африке, а моя целевая аудитория - геймеры в Южной Корее.

Во-первых, посмотрите на соотношение JS и JS в вашей целевой аудитории. Для среднего сайта это 100: 1.

Во-вторых, рассмотрим пропускную способность. JQuery минимизирован и сжатый 24K. Но все ли браузеры работают правильно с содержимым GZIP? Выберите правильную структуру пользовательского интерфейса или выберите, использовать ли ее вообще, в зависимости от пропускной способности вашей целевой аудитории. Если ваша целевая аудитория - молодые люди с интенсивными планами широкополосного доступа, они не будут жаловаться, если размер инфраструктуры составляет мегабайты. Но когда ваш веб-сайт нацелен на отдаленные деревни в какой-либо стране для оказания помощи или образовательной программы или чего-то еще, тогда избегайте таких рамок - они едва могут получить доступ к Интернету.

В-третьих, для доступности важны две вещи:

  1. Любой должен иметь возможность видеть / слышать / знать содержимое вашего веб-сайта.
  2. Каждый должен иметь возможность выполнять все важные функции на вашем сайте.

Как только вы позаботитесь об этом, используя технологии минимального знаменателя для ВАШЕЙ целевой аудитории, вы всегда можете использовать javascript, чтобы навести порядок и улучшить существующие базовые функции (автозаполнение, отправка AJAX и т. Д.) *

Подводя итог, изящно деградируем.

Помимо доступности, я не согласен с тем, что мы должны грациозно ухудшать работу в случае, если у кого-то отключен JS!

Для настольных компьютеров с браузерами: Когда люди не поддерживают JavaScript, ваш веб-сайт должен изящно деградировать - это как сказать Ваш игровой движок должен изящно перейти на DirectX 6, потому что некоторые люди используют Windows 95. . Больше не имеет смысла. Запишите слово больше . Это имело смысл, когда JavaScript присутствовал только в 50% браузеров, и это была новая технология.

У кого-нибудь есть веская причина, по которой моя 3D-игра должна изящно деградировать и использовать DirectX 6? Это спорный вопрос. Что имеет смысл, так это то, что моя игра использует DirectX 11 в Windows 7, но изящно ухудшается и использует DX10 в Vista или даже DX9 в XP.

Давай .. посмотри статистику. Отношение JS включено к Отключено как 100: 1

Опять же, все изменится, если 80% вашей аудитории использует какой-либо новый веб-браузер в мобильном устройстве с нестабильной реализацией JS для просмотра вашего сайта.

Если в большинстве вашей целевой аудитории / устройства включен JS, используйте его хорошо. Если они не имеют, то нет. Вы просто должны дать им то, что они могут использовать и увидеть.

Всегда будет меньшинство, но если есть предварительное условие для просмотра веб-сайта, и он довольно широко распространен, им следует установить / включить его, иначе это слишком плохо для них. Вы, конечно, не хотите параноиков в вашей целевой аудитории.

Конец дня, только у вас будет информация, которая поможет вам решить, насколько вы должны использовать JavaScript. Это всегда продиктовано вашей целевой аудиторией и их устройствами.

3 голосов
/ 27 мая 2010

Если вы разрабатываете простой веб-сайт, вам следует использовать JavaScript только для улучшения взаимодействия с пользователем, и он должен изящно ухудшаться для тех, у кого он не включен. Если ваш веб-сайт ориентирован на контент, то именно так вы должны к нему относиться: сначала контент, навороты на основе JavaScript и второй. Не должно быть ни одной части требуемой функциональности, которая не работает без включенного JavaScript.

Однако , если вы создаете веб-приложение , то сходите с ума. Веб-приложения предполагают для использования JavaScript, поэтому нет смысла обслуживать людей, у которых он отключен; если они действительно хотят использовать ваш продукт, они включат JavaScript (или используют другое устройство). Это не стоит того, чтобы заставить его работать без включенного JavaScript. Это все равно, что утверждать, что вы не должны давать своей видеоигре хорошую графику, потому что компьютеры более низкого уровня не смогут ее запустить: люди, которые действительно хотят играть в вашу видеоигру, обновят свой компьютер.

2 голосов
/ 27 мая 2010

Ответ mhr: «Всегда, пока он изящно деградирует», является хорошей отправной точкой. Я хотел бы добавить, что разумные исключения могут быть сделаны, когда Javascript предоставляет функциональность приложения (ваш сайт является «веб-приложением», а не чисто информационным), который не имеет эквивалента на стороне сервера. Так, например, «постепенная деградация», как правило, не должна мешать вам создавать веб-инструмент для рисования (который в лучшем случае был бы необычайно обременительным, если бы он изящно деградировал до форм и функциональности на стороне сервера). Это должно, однако, помешать вам требовать от Javascript доступа к любому контенту, который этот инструмент для рисования публикует для аудитории, отличной от создателя контента (поскольку создатель контента, само собой разумеется, уже согласился с тем, что Javascript необходим для использования им сайта ).

1 голос
/ 27 мая 2010

При всем моем уважении к мистеру Дж. Нильсену: консервативность в дизайне может быть действительно бессмысленной с точки зрения эволюции и прогресса. Когда впервые появилась flash (с первыми версиями actioncript, действительно увлекательным программированием), появилось много шумно-глянцевых анимационных интерфейсов, большинство из которых практически невозможно использовать с точки зрения удобства использования. Но дело в том, что из всех этих футуристических экспериментов произошли некоторые качественные улучшения с точки зрения пользовательского интерфейса.

С javascript произошло нечто подобное: то, что было простым виджетом, становится все более популярным, даже выходя за пределы уровня представления для обработки некоторой бизнес-логики: RIA (Rich Internet Applications) постепенно полагается на javascript для удобства пользователей. Использовать или не использовать JavaScript?

Я думаю, что каждый инструмент, ориентированный на улучшение юзабилити и взаимодействия, приветствуется в совершенно новом мире, который постоянно развивается и слишком далеко, чтобы иметь четкую форму, направление или просто простой план под ним.

То, что другие говорят здесь, совершенно верно: не стоит думать о тех, у кого все еще отключен JavaScript, поскольку производители игр не слишком заботятся о том, воняет ли ваш компьютер, и они продолжают тянуть границы графики. Благодаря этому мы больше не играем в PACMAN (только если Google хочет) и можем наслаждаться Assassins Creed.

0 голосов
/ 27 мая 2010

Ваш сайт должен изящно деградировать, хотя бы по одной причине: NoScript. Это расширение Firefox зависит от белого списка, позволяющего сайтам запускать Javascript. Это означает, что сайтам, которые я никогда раньше не посещал, не будет разрешено запускать Javascript. Это хороший способ предотвратить множество фишинговых и межсайтовых сценариев (XSS).

Сайты должны заслужить мое доверие в первую очередь. Да, Ebay и Amazon могут сильно зависеть от Javascript, но такой сайт, как www.buyviagracheap.com, может и не быть.

И если с отключенным Javascript вам нечего показывать, я быстро нажму «назад», прежде чем вы сможете сказать «но ...», и никогда не вернусь.

Если, однако, мне нравится то, что я вижу, я могу включить Javascript для вашего сайта и улучшить свой опыт. Поэтому нет необходимости предоставлять полную альтернативную функциональность с отключенным Javascript.

0 голосов
/ 27 мая 2010

ну я не согласен с вашей точкой зрения, что не следует регулярно использовать java-script и jquery. теперь дневной браузер совместим с javascript. И если вам нужно разработать веб-сайт, на котором требуется проверка, вы должны предпочесть javascript (для проверки на стороне клиента).

0 голосов
/ 27 мая 2010

С помощью javascript у нас могут быть отношения клиент / сервер с пользователями, в том смысле, что мы можем использовать их возможности процессора для создания страницы и освобождения некоторых ресурсов от наших серверов. мы доставляем код и данные, а их браузеры собирают их вместе, и так и должно быть. :)

С уважением Бабак

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...