HTML5 самостоятельно поддерживает многие возможности (например, встроенную библиотеку функций рисования, встроенные сокеты и т.д.), доступ к которым ранее требовал использования дополнительно подключаемых модулей (плагинов) или применения нестандартных способов модификации программ. С использованием подключаемых модулей связан целый ряд проблем, а именно:
- подключаемые модули не всегда могут быть установлены;
- использование подключаемых модулей может быть не разрешено или забло- кировано (например, подключаемый модуль Flash не входит в состав стандартной поставки Apple iPad);
- подключаемые модули создают дополнительные риски для атак;
- подключаемые модули плохо интегрируются с остальной частью страницы (проблемы границ модуля, отсечения и прозрачности).
Несмотря на то что некоторые модули в большинстве случаев устанавливаются пользователями, в контролируемой корпоративной среде их часто блокируют. Кроме того, часть пользователей предпочитает запрещать использование дополнительных модулей из-за сопутствующей нежелательной рекламы. Но если пользователь отключит ваш модуль, то тем самым он сделает невозможным и использование программы, ответственной за отображение содержимого, которое вы хотите донести до пользователя.
Подключаемые модули часто сталкиваются с трудностями при попытках встроить свое содержимое в другой блок, отображаемый в браузере, что может приводить к проблемам с отсечением и прозрачностью на некоторых сайтах. Поскольку подключаемые модели используют собственную модель визуализации, отличную от той, которая используется на базовой веб-странице, разработчики могут испытывать затруднения в тех случаях, когда всплывающие меню или другие необходимые визуальные элементы пересекают границы модуля на странице. И тут наступает звездный час HTML5, который с помощью собственной функциональности решает все проблемы. Для стилевого оформления элементов можно использовать CSS и JavaScript. Фактически именно при решении этих задач HTML5 начинает поигрывать самыми большими своими мускулами, демонстрируя силу, которой предыдущие версии HTML не обладали. Речь идет не только о новой функциональности, предоставляемой новыми элементами, а о добавлении собственных возможностей взаимодействия со сценариями и каскадными таблицами стилей, что позволяет решать такие задачи, которые ранее были просто недоступны.
Возьмем, к примеру, элемент canvas (холст, полотно). С его помощью вы можете выполнять операции, которые ранее были трудно осуществимы (попробуйте, например, провести диагональную линию на веб-странице средствами HTML 4). Гораздо более интересны возможности, предоставляемые библиотеками и средствами стилевого оформления, для использования которых достаточно нескольких строк CSS-кода. Помимо всего прочего, элементы HTML5, подобно послушным детям, хорошо уживаются друг с другом. Например, если захватить кадр из элемента video и отобразить его на холсте, то для того, чтобы воспроизвести видео, пользователю потребуется всего лишь выполнить на нем щелчок. Это лишь один из возможных примеров, демонстрирующих преимущества собственного кода по сравнению с подключаемыми модулями. В действительности, когда вы избавляетесь от необходимости работать с "черным ящиком", для вас упрощается практически все. В итоге вы получаете действительно мощную новую среду, и именно поэтому мы решили написать книгу, которая не только рассказывает о новых элементах, но и учит программированию с использованием средств HTML5.