🌟 atbliss.ru

Дмитрий Кирсанов. Устройство сайта

Многим читателям приходилось подмечать ужимки и прыжки автора, пытающегося в русском техническом тексте достичь емкости, точности и в то же время разговорной легкости английских аналогов. Дмитрий Кирсанов — один из тех немногих пишуших по-русски, кому это заморское искусство дается без видимой борьбы. Ниже представлен отрывок из его книги «Веб.Дизайн».

Слово сайт (англ. site) утвердилось в русской интернетовской терминологии сравнительно недавно. Раньше, в 1995–1996 годах, в том же или примерно том же значении применялись сочетания «страница WWW», «узел WWW» или «WWW-сервер».

Упор на «узлы» и «серверы» вполне объясним. У любого эпохального изобретения в начальную пору неустоявшейся терминологии существует перекос в сторону технологий, а не содержимого — радио, к примеру, довольно долго называли неудобоваримым словосочетанием «беспроволочный телеграф». На самом деле сайт как информационная единица — нечто принципиально отличное от сервера WWW (т.е. программы) или узла сети Интернет (т.е. компьютера).

Сайт — это набор из нескольких десятков, сотен или даже тысяч веб-страниц (HTML- или XML-документов), связанных вместе единой темой, общим оформлением, взаимными гипертекстовыми ссылками и, как правило, близким по интернетовским меркам размещением (обычно в пределах одного домена, хотя части сайта вполне могут располагаться на нескольких узловых компьютерах, обслуживаться несколькими серверами и даже принадлежать к разным доменам). Это значит, в частности, что иногда, в зависимости от контекста, один и тот же набор страниц может рассматриваться либо как самостоятельный сайт, либо как часть какого-то другого сайта.

Неупорядоченный континуум

«Компьютерные книги — особые и в том, как они пишутся, и в том, как читаются. Странный анахронизм в «почти безбумажную» эпоху, этот жанр существует еще слишком недолго, чтобы можно было сказать с уверенностью — наследуют ли компьютерные книги хоть что-то, кроме чисто внешних черт сходства, у книг «обычных»? Лет через 50, когда все эти торопливые описания быстро созданных и быстро и навсегда забытых программ будут громоздиться пыльными пожелтевшими грудами, сохранят ли они — не ценность, о нет, но хотя бы способность вызывать умиление, желание раскрыть их и перелистать? Мне остается лишь гадать — и стараться сделать в меру моего разумения так, чтобы книга эта, если и не достигла полной свободы от преходящего и сиюминутного (это невозможно), все же несла бы в себе максимум вневременных ценностей.»

Таким образом, содержимое сайта — так же как текст журнала и, в меньшей степени, книги — выходит из плоскости отдельной страницы в новое, третье измерение. В этой «объемной» композиции объекты могут образовывать друг с другом контрастные или поддерживающие связи не только на плоскости страницы, но и «поперек сайта», взаимодействуя с элементами, расположенными в той же позиции на соседних страницах.

Правда, в отличие от журнала, в котором невозможно добраться до середины, не бросив хотя бы беглый взгляд на обложку и какие-то из внутренних страниц, составные части сайта связаны друг с другом не физически, а исключительно виртуально. Читатель может сразу же попасть на одну из страниц сайта по ссылке из любого места сети, не увидев никаких других страниц этого сайта (и, кстати, не оценив даже приблизительно его масштабов). Поэтому каждая страница должна представлять собой цельную, законченную композицию, а «вертикальные» связи элементов могут играть только вспомогательную, нюансировочную роль. Особенно это относится к самой первой странице, на которой знакомство с сайтом заканчивается примерно у половины посетителей. Другое принципиальное отличие веб-сайта от материальных носителей информации — нелинейность. Это значит, что отдельная страница сама по себе не имеет фиксированного положения в пространстве сайта, а набор из нескольких страниц не обязан складываться в линейную (или любую другую) последовательность. Гипертекстовые ссылки внутри сайта — это не ветви, на которых висят листья страниц, а, скорее, свободно переплетаемые нити, которые автор волен протягивать от одной подвешенной в пространстве страницы к любой другой.

Топология сайта

В то же время основные, магистральные связи между страницами, существующие на любом сайте, всегда складываются в некоторую структуру, отражающую внутренние связи содержимого. Два основных типа таких структур — древовидные (иерархические) и линейные (последовательные).

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

И наоборот, если материал выстраивается в логическую цепочку — как, к примеру, главы одной книги или последовательные шаги оформления заказа в электронном магазине, — естественно воспользоваться линейной структурой. Линейная цепочка страниц обязана иметь начало и конец, причем «запрыгивать в вагон на ходу» (т.е. начинать знакомство с сайтом с одной из промежуточных страниц) обычно смысла нет, так как вам будет значительно труднее поймать нить изложения, чем при древовидном расположении материала.

Большинство сайтов используют и древовидную, и последовательную структуру. Например, начав с иерархического каталога статей, объединенных в разделы, каждую отдельную статью, если она достаточно велика, имеет смысл разбить на несколько следующих друг за другом частей. Точно так же в древовидном каталоге книжного магазина из каждой ветки — страницы отдельной книги — можно перейти к линейной последовательности страниц заказа и покупки. Обратная конфигурация, когда пучки древовидной структуры вырастают из узлов линейной, встречается реже.

Возможность генерации страниц «на лету» в ответ на запросы пользователя и применение динамического HTML для создания «живых», изменяющихся по мере прочтения и взаимодействия с ними страниц размывают стройную картину структуры сайта, где (см. рисунки) каждая страница символизируется своим прямоугольником с определенным количеством стрелок-связей. На многих современных сайтах просто невозможно точно сказать, из скольких страниц они состоят и сколько связей содержат. Однако и при создании своего сайта, и при исследовании чужого вы должны четко представлять себе, в какой системе координат — декартовой линейной или полярной древовидной — вы в каждый момент находитесь.

Особую роль играют внешние ссылки, связывающие данный сайт с другими. Если только весь ваш сайт не посвящен таким ссылкам (т.е. не является каталогом ресурсов или чем-то подобным), внешние ссылки имеет смысл оформить так, чтобы был очевиден их особый статус (например, на www.microsoft.com для этого ставят особые маленькие иконки сразу после внешних ссылок). Сайты с фреймами не должны забывать перенаправлять свои внешние ссылки на верхний уровень иерархии фреймов.

Распределение материала

Чем же следует руководствоваться, разделяя содержимое будущего сайта на отдельные страницы? На первый взгляд ответ очевиден: деление должно быть прежде всего логичным, так чтобы каждая страница была посвящена одной теме и чтобы всякая тема занимала одну и только одну отведенную под нее страницу. Кроме того, нужно учитывать ограничение объема файлов, о котором я уже упоминал: оставляя разумный минимум на графику, HTML-текст каждой страницы должен весить не больше 20–30 Кб. С другой стороны, каждый щелчок мышью по ссылке требует от пользователя определенной затраты сил, поэтому слишком много слишком маленьких страниц — тоже не лучший выход (известно даже «правило двух щелчков», гласящее, что первую страницу сайта от любой другой должно отделять не более двух щелчков мыши).

Эти простые правила, однако имеют множество исключений. Если информационные единицы, из которых состоит сайт, слишком мелки, можно объединять на одной странице несколько таких единиц — но только в том случае, если они сравнимы по объему и важности и расположены на одном уровне иерархии. Нередко, особенно на сайтах академического толка, можно встретить гигантские страницы в сотни килобайт, собравшие всю информацию по какой-нибудь большой теме и образующие иерархию не подчиненных страниц, а подразделов в пределах одного HTML-файла. Это допустимо только в академическом стиле, имеющем достаточно уровней вложенности заголовков (теги H1-H6) и не обремененном графикой и табличной версткой (т.е. тем, что способно сильно замедлить загрузку и показ и без того объемистой страницы).

Справедливости ради отмечу, что даже при исключительном использовании HTML 2.0 авторы больших файлов ставят некоторых из своих читателей — а именно тех, кто переходит на какой-то из разделов в самом конце такого файла по ссылке с #, — перед необходимостью довольно долго ждать у пустого экрана.

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

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

Вообще говоря, степень членения содержимого должна зависеть от частоты его обновления. Чем непостояннее структура вашего сайта, чем чаще добавляются и убираются разделы и подразделы, тем меньше должен быть объем одной страницы. Представьте, что на какой-то из первоначально цельных по содержанию страниц появился маленький пункт или подраздел. Если вы поленитесь сразу вынести его в отдельный файл, рано или поздно вам, вполне вероятно, все-таки придется это сделать (например, когда таких разделов накопится уже несколько). Тем самым вы доставите определенное неудобство тем, кто видел этот материал по прежнему адресу и, вполне возможно, занес тот адрес в закладку или ссылку.

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

Фреймы и окна

Нелинейность информационного пространства сайта иногда находит свое видимое выражение в использовании фреймов — перегородок внутри окна броузера, позволяющих в образующихся «форточках» показывать несколько HTML-файлов одновременно. По сути, мы имеем здесь дело с разновидностью древовидной структуры, в которой корневой документ (англ. frameset document) сам по себе не виден — он лишь разделяет окно на фреймы, задает их размеры (в пикселах или в процентах от размеров окна) и указывает URL-адреса документов для первоначальной загрузки в каждый из фреймов.

Зачем может понадобиться выводить на экран несколько документов одновременно? Простейший и самый распространенный случай — два фрейма, один из которых содержит неизменную и неподвижную панель навигационных ссылок, а второй предназначен для документов с основным содержимым сайта; щелчок по ссылке в навигационном фрейме приводит к загрузке нового документа в основной фрейм. Навигационных фреймов может быть два и более, с панелями, относящимися к разным уровням навигационной иерархии. Иногда, когда фреймы уже использованы для навигации (которая, собственно говоря, только и способна оправдать введение фреймов), автор может добавить еще один фрейм для закрепления в фиксированном месте экрана рекламного баннера, логотипа или адреса собственной фирмы.

Сайты с фреймами имеют три основных преимущества. Во-первых, фреймы дают некоторую экономию в объеме пересылаемых пользователю файлов, так как при переходе по ссылке заменяется содержимое только одного фрейма (впрочем, почти того же эффекта можно добиться и без всяких фреймов, просто подключая на всех страницах одни и те же графические файлы). Во-вторых, при этом появляется возможность проматывать материал только одного фрейма, имея перед глазами неподвижное содержимое остальных фреймов. И в-третьих, в сложных по визуальной структуре композициях фреймы дают дизайнеру возможность с гарантией контролировать величину полей и жестко привязывать материал не только к левому и верхнему краю окна, но и к правому и нижнему. На этом достоинства фреймов заканчиваются — и начинаются их недостатки.

Введение фреймов резко ограничивает переносимость HTML-документа и делает его недоступным для многих поисковых роботов. Страницы с фреймами выглядят громоздко, их интерфейс не всегда интуитивно понятен — многих подсознательно раздражает то, что щелчок мышью в одной точке экрана вызывает изменения совсем в другом месте. Фреймы приводят к неоднозначности в адресации, так как при переходах по ссылкам и загрузке новых документов в отдельные фреймы адрес текущего корневого документа, отображаемый в строке URL броузера, не меняется; из-за этого, встречаясь с фреймами, многие подсистемы броузера (к примеру, меню со списком посещенных адресов) вынуждены действовать не слишком логично. Наконец, из некоторых сайтов с фреймами бывает не так-то просто выбраться на свежий воздух — после перехода по ссылке, ведущей за пределы сайта, страница чужого сайта загружается иногда не на чистый лист пустого экрана, а в тот же фрейм, в котором стояла ссылка.

Еще один, более простой (и исторически появившийся первым) способ вывода на экран компьютера нескольких документов одновременно — создание новых окон броузера. Атрибут target тега A позволяет открывать для документа, к которому ведет эта ссылка, новое окно или же загружать этот документ в любое из уже открытых окон. По умолчанию вновь созданные окна имеют все атрибуты броузера (строку адреса, кнопки, меню) и ни по внешнему виду, ни по поведению не отличаются от окна-«родителя». С помощью JavaScript можно управлять размерами нового окна и даже создавать «голые» окна без каких-либо элементов интерфейса броузера. Иногда окна фиксированного размера открываются не для самостоятельных страниц, а для небольших «довесков» информации, которые автор хочет сунуть посетителю прямо под нос, — таких как рекламный баннер, подробный адрес фирмы или увеличенная копия изображения, чей «ноготок» (thumbnail) виден на странице.

Есть подводный камень, который надо обязательно учитывать при размножении броузерных окон: если исходное окно было распахнуто на весь экран (обычная ситуация для многих пользователей с низким разрешением дисплея), то новое окно также создается максимизированным, полностью заслоняя предыдущее. Пользователь может запросто не заметить подмены и будет долго пытаться понять, почему он не может вернуться по последней ссылке кнопкой Back — список пройденных в данном сеансе адресов новосозданные окна не наследуют.

Первая страница

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

Конечно же, стиль оформления первой страницы должен соответствовать стилю всего сайта и даже, в каком-то смысле, доводить этот стиль до его логического завершения. Так, особенно плотно нагружена первая страница и без того насыщенных информацией контент-сайтов — здесь и заголовок с логотипом, и краткая аннотация, и ссылки на основные разделы и подразделы (навигационная панель, иногда не одна), и реклама, и список последних новостей и обновлений содержимого. Чтобы разместить все это изобилие материала, нередко применяются верстка текста в несколько колонок и даже «резиновый» табличный каркас страницы.

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

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

Всплеск и вскрик

Нередко пустота на дизайнерских сайтах столь обильна (опять каламбур), что она не только растекается по всей первой странице сайта, но и выплескивается с нее в третье измерение, образуя сплэш-страницу (англ. splash page) — своего рода заставку, прихожую, суперобложку сайта. Расположенная первой сплэш-страница, как правило, не содержит ничего, кроме логотипа фирмы или визуала (часто анимированного), и единственной своей ссылкой, привязанной к этому изображению, ведет на главную (хотя теперь уже не «первую») страницу сайта. На случай, если посетитель не догадается щелкнуть по этой единственной ссылке, тег META автоматически перенесет его туда спустя какое-то время.

Отсутствие другого содержимого позволяет вывешивать на сплэш-странице довольно объемистую (иногда до 100 Кб) анимированную графику, показывающую способности дизайнера во всем их блеске. Однако и простой, без анимации, логотип фирмы в центре пустой страницы прекрасно справится со своей задачей — представив зрителю главное действующее лицо начинающейся феерии дизайна и сделав небольшую паузу, чтобы дать утихнуть аплодисментам. Кроме психологической артподготовки посетителя, приучения его «малыми дозами» к стилю лежащего впереди сайта, сплэш-страница способна решать и вполне практические задачи: русскоязычные сайты нередко выносят на нее меню выбора языка и/или кодировки, а особо заботливые любят здесь же объявлять о предпочтительных для просмотра этого сайта броузерах и даже указывать оптимальные размеры окна.


Перейти к верхней панели