Зачем нужен JavaScript

JavaScript - один из наиболее часто используемых веб-мастерами инструментов. Он позволяет внести динамику в статические страницы, оживить сайт. Но всегда ли оправдано его применение?

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

Для чего используется JavaScript на сайтах

Чаще всего JavaScript используют для:

  • организации выпадающих меню;
  • проверки данных форм до их отправки на сервер;
  • небольших интерактивных элементов страницы, типа простеньких расчетов, выполняемых на стороне клиента;
  • разных "красявостей" типа эффекта падающего снега, шлейфа за указателем мыши и т.п.

Давайте рассмотрим плюсы и минусы этих "штучек".

Выпадающие меню

Их достоинства: красиво выглядят, вносят некоторую динамику в страницу; позволяют поместить на одну страницу всю навигацию сайта (или большую часть).

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

Вывод: недостатки выпадающих меню, сделанных на JavaScript, явно превосходят их достоинства.

Проверка данных форм до их отправки на сервер

Позволяет существенно сэкономить трафик и ускорить работу пользователя, что особенно важно для работающих через dial-up. Но, включая в форму JavaScript-проверку данных, надо учитывать, что, во-первых, JavaScript у пользователя может быть отключен, во-вторых, далеко не все проверки можно выполнить на стороне клиента. Поэтому программа обработки данных формы на сервере должна включать в себя и все необходимые проверки, в том числе и те, которые уже были (или не были?:) выполнены броузером.

Интерактивные элементы страницы

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

Украшательства страницы

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

Общие недостатки JavaScript

JavaScript по-разному работает в разных броузерах. Это следствие различий объектной модели документа, лежащих своими корнями в давней конкуренции Internet Explorer и Netscape Navigator. Кроме того, разные версии даже одного и того же броузера могут поддерживать разные версии JavaScript. В результате самая простенькая программка на JavaScript должна разбухнуть в несколько раз для того, чтобы она нормально работала во всех ситуациях. Но даже после превращения процедурки, вычисляющей "дважды два", в монстра размером с два экрана программного кода, нельзя забывать о том, что у некоторых пользователей JavaScript вообще может быть отключен;).

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

Вывод

Мое глубокое убеждение - на 99% сайтов JavaScript нужен и уместен только для проверки данных форм перед их отправкой на сервер.