Ограничения
HTML
Так
в чем же ограничивает нас HTML? Зачем понадобилось придумывать еще один язык?
Нельзя ли обойтись без него?
В
общем, можно. Обходились же мы на протяжении целых одиннадцати глав обычным
HTML, и ничего! Но дело в том, что странички-то мы делали неинтерактивные, т.
е. не взаимодействующие с пользователем, не меняющие свое содержимое в ответ
на его действия. Для таких страниц хватит и "чистого" HTML. А как
только вы захотите "научить" страницу взаимодействовать с пользователем,
т. е. сделать интерактивной, вы сразу упретесь в непреодолимую стену.
А
все потому, что HTML не позволяет задать поведение страницы в ответ, скажем,
на щелчок мыши по одному из ее элементов. С его помощью задается только ее внешний
вид. И этим он в корне отличается от "классических" языков программирования,
описывающих как раз поведение.
Собственно,
HTML — и не язык программирования, а язык описания Web-страниц — и не более.
Он описывает, как должна выглядеть информация в окне Web-обозревателя, только
и всего. Причем, этот внешний вид жестко стандартизирован; Web-дизайнер, как
вы уже поняли, значительно сильнее ограничен в своих возможностях, чем дизайнер-полиграфист.
Особых вольностей на Web-страницах он не сделает. (Фреймы, таблицы разметки
и каскадные таблицы стилей CSS снимают многие ограничения, но не все.)
Конечно,
такие ограничения обусловлены благой целью — обеспечением совместимости и единообразия
внешнего вида страниц на любой компьютерной платформе. Но кому нужна совместимость
такой ценой!
Вы
можете сказать, что любая Web-страница и так йвляется интерактивной, т. к. реагирует
на щелчки по гиперссылкам. Но это не интерактивность, а стандартное поведение,
заданное HTML. Интерактивность - это когда в ответ на перемещение курсора мыши
за ним "бежит" картинка, когда при щелчке на фотографии внизу появляется
ее описание, когда прямо на страничке "тикают" цифровые часы. Вот
это настоящая интерактивность: в первом и втором случаях страница реагирует
на действия пользователя, а в третьем — на события внешней среды. (Здесь под
внешней средой подразумевается операционная система; работающий в ней системный
таймер заставляет идти нарисованные часы.) И обычный HTML не может ее обеспечить.
Чтобы
преодолеть этот недостаток "чистого" HTML, были придуманы два пути.
Первый
путь — это специальные, как правило, нестандартные, "фирменные", теги,
расширяющие возможности языка. В подавляющем большинстве случаев они добавляют
Web-страницам интерактивные возможности. Например, нестандартный парный тег
<MARQUEE>. . .</MARQUEE>, поддерживаемый Internet Explorer, позволяет
создать на странице "прокручивающийся" текст. Но, согласитесь, эти
расширения ограничивают Web-дизайнера теми возможностями, что вложили в них
разработчики Web-обозревателя. И вы не сможете заставить текст в элементе <MARQUEE>
не прокручиваться, а последовательно менять цвета — разработчики Internet Explorer
этого не предусмотрели.
Мы хотим сами задавать поведение элементов страниц в ответ на действия пользователя. Мы хотим сами контролировать их поведение, держать все нити управления в своих руках. HTML их нам предоставить не может; ограничения, обусловленные самой его природой, — стена, преодолеть которую невозможно. Однако, если стену нельзя перепрыгнуть, ее можно обойти. Так мы и сделаем.