Сегодня Интернет стал по-настоящему массовым, и его популярность постоянно увеличивается за счет удешевления доступа. Многие владельцы персональных компьютеров имеют возможность выхода в сеть. Интернет используется в повседневной жизни для передачи всевозможной информации: от новостей до денежных переводов. В одной лишь базе данных Google на настоящий момент индексированы более 4 миллиардов страниц и постоянно добавляются новые. И это не удивительно: для создания своей странички не требуется значительных усилий. Разнообразные визуальные редакторы значительно ускоряют и упрощают процесс создания интернет-страниц. К сожалению, качество исполнения таких творений оставляет желать лучшего: при работе с WYSIWYG-редакторами веб-разработчик использует стандартные блоки и не имеет дело с HTML-кодом. Использование подобных методов для создания сайтов приводит к тому, что код HTML-документов плохо совместим с различными браузерами и содержит много «мусора». Это простительно только для начинающего веб-разработчика. Такой подход неприемлем для профессиональной разработки сайта, особенно для компаний, планирующих работать в сети, например, продавая товар через интернет. В таких случаях очень важны вид и качество исполнения веб-представительства фирмы. На создание качественного сайта необходимо потратить много усилий. Основная проблема состоит в том, что разные браузеры по-разному отображают интернет-страницы и не всегда так, как это было задумано их создателем. На сегодняшний день существуют три наиболее распространенных клиента: MS Internet Explorer (IE), Mozilla (MZ) и Opera. Кроме того, в семействе MZ существуют другие распространённые Gecko-браузеры: Firefox, Netscape 7 и др. По статистическим данным (например, от HotLog или SpyLOG), основная масса пользователей использует для сёрфинга браузер IE. MZ и Opera — много меньше, но отказываться от их поддержки нельзя, поскольку их доля достаточно велика и постоянно растет. Наиболее совместимая со всеми браузерами разметка HTML-документа получается при соблюдении стандартов, определённых организацией World Wide Web Consortium (W3C). Но и здесь существуют подводные камни: дело в том, что разработчики браузеров иногда по-разному понимают спецификации и рекомендации по разработке ПО, что приводит к некорректному отображению документа. К счастью, в современных браузерах ситуация исправляется и в большинстве случаев страницы отображаются корректно. Практически каждая современная интернет-страница состоит из нескольких основных языков, каждый из которых играет огромную роль в её функционировании. Это: К каждому из них существует соответствующий стандарт. В данной статье мы рассмотрим основные моменты этих языков, которые касаются кросс-браузерности. Кроме того, мы затронем следующие аспекты: определение и целесообразность кросс-браузерности; применение функций, зависящих от браузера; возможности использования Macromedia Flash.
Итак, что же такое кросс-браузерность? Кросс-браузерность — это термин, означающий идентичность отображения информации во всех современных пользовательских агентах. Основной вопрос — нужна ли она и, если да, то в каких случаях её стоит добиваться, а в каких — нет? На данный момент стандартом де-факто является IE и существует мнение, что пользователями других браузеров можно пренебречь. В результате немногие прилагают усилия для разработки сайта, который будет адекватно отображаться в альтернативных клиентах. С одной стороны, этот подход оправдан, поскольку затраты на написание сайта под IE низки. С другой стороны, часть пользователей теряет возможность полноценно работать с сайтом. Необходимо учитывать и то, что статистика, о которой упоминалось выше, носит субъективный характер и несколько занижена по отношению к альтернативным пользовательским агентам. В качестве примера рассмотрим интернет-магазин. При отказе от кросс-браузерности фирма потеряет потенциальных клиентов. Даже в случае если на сайте будет явно указано, что он разработан под определенный браузер, мало кто вернется, и в том случае если этот браузер будет установлен на компьютере. Дело тут не в лени, а в психологии людей, и от этого никуда не уйти. Разработка интернет-проектов подчиняется финансовой логике: затраты на разработку должны не превышать разумные пределы и себя окупать. В итоге необходимо получить сервис, доступный для максимального числа пользователей. Но во всём надо знать меру. Как правило, сайт состоит из 2-х основных частей: пользовательской и администраторской. К пользовательскому интерфейсу имеет доступ неограниченное число посетителей и желательно чтобы он работал с любым браузером. Разработка сайта поддерживающего все существующие браузеры будет либо неоправданно дорога, либо сайт будет содержать только обычный текст. Оба пути плохо подходят для реальных задач. Разрабатывать сайт необходимо под массовые браузеры. За общее правило можно взять поддержку браузеров не старше 3-х лет. В большинстве случаев такого подхода вполне достаточно. Но не стоит воспринимать эту цифру как постулат. IE и альтернативные браузеры слишком сильно отличаются друг от друга. И не только функционально. По ряду причин сейчас нельзя отказаться от поддержки IE 5, хотя даже IE 6 старше трёх лет. Многие пользователи, например, по-прежнему используют Windows 98 (SE), где по умолчанию установлен IE 5.0. Скачивать же через Интернет новую версию IE, которая занимает порядка 70 мегабайт, мало кто возьмётся. С другой стороны, Opera 7.50 занимает всего 3,5 мегабайт, и её с лёгкостью можно обновить даже при dial-up соединении. К интерфейсу администрирования имеет доступ ограниченное число людей, а его функциональность порой очень сложна (например, многие встраивают основанный на HTML и JS WYSIWYG-редактор для удобного добавления информации). В этом случае можно отказаться от кросс-браузерности и писать эту часть интерфейса только под конкретный браузер. При написании кросс-браузерного сайта мы рекомендуем использовать новый стандарт XHTML (1.0). XHTML — это основанный на XML язык разметки гипертекста, максимально приближенный к текущим стандартам HTML. XHTML отличается от HTML строгостью написания кода. Если HTML позволял писать практически любые конструкции и браузер их корректно распознавал, то теперь, с появлением XHTML, это стало невозможным. Последний требует строгого соблюдения всех правил, предъявляемых W3C. Строгие требования к оформлению XHTML-кода позволяют избежать многих ошибок ещё на стадии написания и отладки. Для ярых приверженцев HTML хотелось бы отметить, что XHTML — это новый язык, который пришёл на смену старому HTML. Новых версий HTML больше не будет. В итоге все браузеры, как предполагается, перейдут на XHTML (очевидно, что при этом сохранится совместимость со старым HTML, но не более того). Так же хотим привести цитату из русского перевода спецификации XHTML от W3C: «Семейство XHTML создавалось с учетом общей совместимости пользовательских агентов. С помощью нового механизма профилирования пользовательских агентов и документов серверы, прокси и пользовательские агенты смогут преобразовывать содержимое наилучшим образом. В конечном счете, станет возможной разработка соответствующего XHTML содержимого, пригодного для любого соответствующего XHTML пользовательского агента». XHTML совместим с HTML при соблюдении некоторых правил, описание которых можно найти в стандарте. Это означает, что даже самые старые браузеры, которые понимают HTML, будут работать и с XHTML. С JavaScript (JS) всё несколько сложнее. На момент написания статьи существовали две различных интерпретации стандарта ECMA-262 это JavaScript, используемый в MZ и Opera, и JScript в IE. Внутренняя организация у них разная, но интерфейсы практически одинаковы. Примечательно, что Opera 7+ и MZ позволяют достаточно легко расширять интерфейс для реализации совместимости с IE. В современных альтернативных пользовательских агентах проблема доступа к элементам страницы ушла на второй план, поскольку разработчики добавили в браузеры большинство специфичных для IE объектов. Тем не менее, мы рекомендуем для работы с элементами страницы использовать DOM<sup><a href="#cross10">10</a></sup>. На момент написания статьи, существовали три уровня этого стандарта: «DOM Level 1» описывает основные интерфейсы, «DOM Level 2» вводит дополнение XML Namespaces, «DOM Level 3» определяет методы Load и Save. Современными браузерами наиболее полно поддерживается «DOM Level 1». Некоторое внимание хотелось бы уделить ещё одному стандарту от консорциума W3C — CSS. На момент написания статьи, существовала вторая и ведётся работа над третьей версией. На самом же деле версия 2.0 этого стандарта поддерживается не полностью некоторыми браузерами (IE, как ни странно, находится именно в этом списке). Лучше всего этот стандарт версии 2.0 поддерживает только MZ. Поэтому рекомендуется очень аккуратно использовать CSS 2.0 при разработке кросс-браузерных сайтов. Наиболее же полно стандарт CSS поддерживается многими (даже старыми) пользовательскими агентами только версии 1.0.
Ещё один популярный веб-компонент — Flash. Целесообразность его использования — это ещё одна большая статья. Существует масса публикаций на эту тему. Flash удобен тем, что его интерпретатор (plug-in, который называется Flash Player) поставляется для большинства браузеров с одними и теми же функциями. Таким образом, получаем наиболее полную совместимость со всеми пользовательскими агентами одного и того же flash-ролика. Но у Flash есть и недостатки, обсуждение которых выходит за рамки этой статьи. Если сайт — представительство студии дизайна со сложной графической компоновкой, анимацией и интерактивностью, то Flash подойдёт как нельзя лучше. В других же случаях решение использовать Flash должно детально обдумываться и быть взвешенным. Хорошим решением будет использовать Flash-технологию совместно с другими языками в (X)HTML-документе. Flash может взаимодействовать с JavaScript, благодаря чему у разработчика сохраняются все инструменты для полноценной работы. Однако к каждой бочке мёда прилагается и своя ложка дёгтя. Современные браузеры поставляются с предустановленным Flash Player. Но нет гарантии, что версия проигрывателя, входящая в комплект поставки, самая последняя. Когда Macromedia выпускает новую версию Flash, она выпускает и новую версию Flash Player. На начальной стадии, после выпуска программного продукта Flash, у большинства пользователей не будет самой последней версии проигрывателя к нему. Macromedia предоставляет возможность обновления flash-проигрывателя через интернет, но не все ей пользуются. Таким образом, если сегодня сделать flash-ролик в программе Flash MX 2004, для которого нужна самая последняя версия проигрывателя (под номером 7), многие пользователи не смогут увидеть его отображение в своих браузерах. Существует несколько способов решения этой проблемы. Мы рассмотрим один, на наш взгляд, наиболее эффективный. Начиная с версии Flash MX 2004, разработчик может выбирать версию flash-проигрывателя, для которого создаётся ролик (см. рис. 4). Благодаря этому можно получить flash-ролик, совместимый с более ранними версиями Flash Player, которые имеются в большинстве современных браузерах. Единственный минус такого подхода — нельзя использовать функции, которые появились в более поздних версиях Flash. Но в большинстве случаев временный отказ от их применения не такая большая потеря, как это может показаться на первый взгляд. Для полной совместимости необходимо указать, что язык, используемый в ролике — ActionScript 1.0. Мы рассмотрели небольшую часть теории создания широко доступных интернет-ресурсов. Методики построения кросс-браузерных сайтов постепенно переходят из области искусства в область науки, когда можно формализовать подходы к проблеме и получить строго определенные результаты. Мы ещё раз хотим подчеркнуть, что при разработке сайта необходимо придерживаться стандартов оформления кода и разметки страниц. Только в этом случае можно эффективно использовать накопленный опыт вместо повторного изобретения подходов для решения новых задач. И только с опытом, приобретенным в результате продолжительной работы, вы сможете достичь профессионального уровня и стать специалистом. На данный момент мы рекомендуем тестировать сайты в следующих браузерах: IE 5.x, IE 6.x, MZ 1.x, NN 7.x, Opera 7.x как в среде Windows, так и в Linux или другой *nix-совместимой ОС. Дополнительно можно использовать браузеры Konqueror и Safari, однако использование последнего осложняется тем, что он работает только в операционной системе MacOS. |