Web-studio "Cherry-Design"
То, что описано ниже, предполагает, что Вы хотите сделать красивый и стильный сайт полностью своими руками, т.е. сами рисуете все графические элементы, сами пишете странички, сами сканируете и доводите фотографии...
Итак, какова же аппаратная оснащенность web-дизайнера? Для начала нужно сразу сказать, что Вам потребуется не самый слабый компьютер. Он должен поддерживать разрешение от 800x600 точек при глубине цвета TrueColor, иметь как минимум 32-64M памяти, быть оснащенным CD-ROMом, очень желательно, чтобы были также сканер и звуковая карта. А теперь по порядку: зачем все это нужно.
Автоматическое перенаправление
Все мы рано или поздно сталкиваемся с тем, что сайт меняет хостинг. И в этом случае к нему уже нельзя обратиться по старому адресу. Но ведь нам не хочется терять своих посетителей? Поэтому обычно на старом месте размещают одну страничку с информацией о новом адресе сайта. Но куда более логичным будет сделать так, чтобы в дополнение к информации броузер бы сам перешел по новому адресу. И это нетрудно сделать благодаря META-тегу с параметром "refresh". Вот пример кода:
В данном примере мы передали броузеру указание, чтобы он автоматически перешел на страничку по адресу http://www.newaddress.com/ после 3-х секундной задержки. Задержка нужна, чтобы пользователь успел прочитать информацию.
Бегающий указатель
Чем отличаются варианты RollOver с "подсвечиванием пунктов меню" и "бегающим указателем"? Только тем, что во втором случае у нас есть всего две картинки, используемые для всех пунктов меню - пустая и с изображением указателя. Пример использования данного эффекта, можно посмотреть вот здесь
В этом варианте RollOver нам придется слегка изменить HTML-код, описывающий меню, т.к. перед каждым пунктом меню мы добавляем изображение пустого указателя:
Обратите внимание на несколько особенностей. Во-первых, вместо одной функции смены изображения нам понадобятся две, т.к. действия, производимые при попадании курсора в область пункта меню, и покидании ее слегка отличаются. Мы назовем эти функции соответственно over() и out(). Во-вторых, заметьте, что атрибут name, тега , переместился из описания пункта меню в описание указателя - ведь теперь мы подсвечиваем не меню, а указатель! Число параметров, передаваемых функциям можно сократить - достаточно ограничиться именем картинки (атрибут name), т.к. ссылки на изображения, формирующие указатель, нам известны заранее. Код, осуществляющий необходимые действия, теперь выглядит так:
function over(img) { if (browser_ok == 'true') { document.images[img].src = "pic/pointer-on.gif"; } } function out(img) { if (browser_ok == 'true') { document.images[img].src = "pic/pointer.gif"; } }
Осталось разобраться с отличиями, которые присущи третьему варианту эффекта, а именно...
Бойцы невидимого фронта
Mike Melnikov (cherry-design@mail.ru)
Web-studio "Cherry-Design"
Если Вы еще не догадались, то я имею в виду META-теги. Их роль не заметна при отображении странички. Это лишь команды для web-сервера или броузера, но команды важные, и правильное использование META-тегов дает нам некоторые преимущества.
Запомните! Все META-теги не несут визуальной информации и должны располагаться в секции
документа. В любом другом месте они будут проигнорированы. Удобнее всего будет, пожалуй, рассказать о МЕТА-тегах на примере повседневных задач, возникающих при верстке. Да и полезней это будет, чем чистая теория.
Броузеры, которые мы выбираем
Mike Melnikov (cherry-design@mail.ru)
Web-studio "Cherry-Design"
Теперь давайте поговорим о броузерах. А что о них говорить, скажете Вы, и так все ясно - это программа, при помощи которой мы смотрим Web-странички. Ну что же, это правильно, основное их предназначение заключается в этом - просмотре Web-страничек. Но почему же в мире тогда так много броузеров? И почему они показывают странички по-разному?
Давайте вспомним. Что лежит в основе Web-страничек? Верно, язык HTML, и определятся он как текст в формате ASCII со вставкой специальных разметочных кодов (или тэгов). И когда броузер отображает страничку, то он находит эти коды и выполняет соответствующие им действия (например, встречая тэг начинает вывод последующего текста полужирным шрифтом, а встречая - прекращает это делать). Полный набор таких тэгов называется спецификацией и поддерживается WWW-консорциумом, в который входят все основные компании, разрабатывающие программное обеспечение для Internet (в том числе, и Microsoft с Netscape). В идеале, все броузеры должны удовлетворять данным спецификациям, но, к сожалению, реальная жизнь и конкуренция между ведущими производителями броузеров вносят свои коррективы. Напомню, что первоначально HTML позиционировался как язык логической разметки текста, независимый от устройства вывода. То есть тэги воспринимались как указание к выделению части текста некоторым образом. Отсюда в языке имеется множество т.н. логических тэгов типа , , : , к сожалению, редко применяющихся. Фраза "независимый от устройства вывода" обозначает, что результат интерпретации HTML-кода может быть выведен не только на экран, но и, к примеру, на звуковую карту (когда компьютер сам будет читать Вам содержимое HTML-странички) или на специальное устройство, воспроизводящее содержимое странички кодом Брайля. Но получилось так, что язык HTML, в конце концов, превратился в язык описания страниц на экране компьютера. В настоящий момент имеются два броузера, особенности которых должен учитывать web-дизайнер при изготовлении страничек. Это "Netscape Navigator" и "Microsoft Internet Explorer" (а вдруг кто не знает :) На самом деле броузеров гораздо больше, но они все вместе занимают всего около 1% рынка и, как правило, стремятся к совместимости с одним из двух лидеров. Между собой лидирующие броузеры делят рынок в соотношении примерно 75/25 (на данный момент лидирует Internet Explorer). Так что, в дальнейшем будут рассматриваться только эти программы.
CD-ROM
для работы Вам понадобится использовать клипарты и профессиональные фотографии, а они, в основном, распространяются на компакт-дисках. Кроме этого, он пригодится и в том случае, если Вы захотите использовать на своих страничках звук.
Что особенного в графике, применяемой на web-страничках?
А то, что она имеет свои определенные ограничения, с которыми мы должны считаться и извлекать из этого выгоду. Для использования в Web применяется два основных формата файлов - GIF и JPG. Сейчас продвигается новый формат для web-графики под названием PNG (произносится "пинг"), но он пока еще мало распространен, и не все броузеры его понимают, поэтому с этим форматом мы пока разбираться не будем. Итак, приступим к разбору форматов GIF и JPG, опишем их основные свойства и особенности.
Что собой представляет информация?
On-line публикацию статьи или статистические данные, полемику по горячему вопросу или интервью со звездой? Давайте начнем с публикации в Internet книги. Книги рассчитаны на чтение от начала до конца (исключая справочники и словари) - мы к этому привыкли, поэтому и в Internet мы должны поместить ее таким образом, чтобы ее можно было читать от начала и до конца. Гипертекст позволяет организовать оглавление в виде удобных гиперссылок и перейти сразу к нужному разделу; но если человек читает все подряд, то в конце каждого раздела мы должны сделать ссылку на следующий, не заставляя человека пробираться назад в поисках оглавления. Кроме этого, в отличие от обычной книги, в которой то и дело появляются сноски, в HTML-документе такую сноску можно и должно оформить как переход к глоссарию или отдельной страничке, на которой эта сноска объясняется. В случае опубликования какой-нибудь научной статьи или горячего материала появляются, как правило, отклики и рецензии. Их нужно оформлять как отдельные документы, но в конце рецензируемого документа нужно сделать ссылку на рецензию - это позволит читателю ознакомиться со всеми "за и против". Теперь рассмотрим случай, когда у нас статистические данные. Как представляется статистика? Правильно - в виде таблиц. А теперь вопрос: Вы любите длиннющие таблицы, в которых можно найти все что угодно через каких-нибудь полчаса после начала исследования? Я - нет. Поэтому надо позаботиться о пользователе и дать ему ту информацию, которая ему интересна (и не обязательно публиковать в Internet всю базу данных). В случае, если информация не помещается в окне броузера и требует скроллирования по горизонтали (О ужас! Они сами смотрят на свои таблицы?), разделите одну большую таблицу на несколько маленьких и легко понятных, а затем свяжите их перекрестными ссылками (на то он и гипертекст :). А если у Вас все же получается длинная таблица, то визуально отделяйте, допустим, каждую пятую строку при помощи изменения цвета ячейки (все современные броузеры это поддерживают). И в случае, если Ваша статья или таблица занимает больше пяти экранов, разместите в начале краткий список подразделов и от них локальные ссылки в пределах статьи.
Назад | Содержание | Вперед
Что такое объектная модель?
Давным-давно, когда броузеры еще имели номер версии равный единице, ничего подобного не было и в помине. Информация просто выводилась на дисплей по мере поступления, не подвергаясь никаким изменениям. Все было просто, и даже глюков совместимости еще не было :) Сейчас же путь странички до дисплея гораздо дольше. Давайте поэтапно проследим ее путь:
Страничка скачивается с сайта и размещается в памяти компьютера
Производится анализ странички, в результате которого она препарируется на составляющие.
Блоки, из которых состоит страничка (,
, и т.д.) размещаются во временной базе данных соответственно структуре объектной модели.
База данных становится доступной другим программам и, в частности, рендеру, который выводит страничку на экран. Для доступа и управления содержимым этой базы данных броузер предоставляет нам механизм объектов и скриптовый язык, посредством которого и выполняется доступ.
Разумеется, содержимое базы может быть изменено до вывода на экран, что и позволяет работать DHTML. Но объектная модель остается работать даже после того, как страничка показана на экране дисплея. Это дает нам возможность в небольших пределах (а в последних версиях HTML 4.0 практически полностью) менять содержимое странички после загрузки.
Что такое стильный web-сайт?
Mike Melnikov (cherry-design@mail.ru)
Web-studio "Cherry-Design"
Стильный web-сайт - это когда каждая страничка Вашей публикации имеет ярко выраженную принадлежность ко всему web-сайту. Когда легко ориентироваться и поиск информации не сопряжен с опасностью заблудиться и потерять время. Когда странички загружаются менее, чем за минуту. Когда...
Стильность web-сайта достигается несколькими приемами. Можно выделить следующие элементы, участвующие в создании стиля:
шрифт - в пределах публикации он должен иметь одинаковые характеристики - такие, как гарнитура (начертание), кегль (высота), цвет.
абзац - желательно, чтобы преобладал какой-нибудь один из видов выравнивания на страничке, например, публикация сделана с отступом от левого края и выравниванием влево.
цветовая схема web-сайта - она начинается с выбора тех трех цветов страницы, которые используются для представления обычного текста, ссылок и посещенных ссылок. Все эти параметры указываются в тэге . Ниже, для примера, приведена строчка, задающая цвета на этих страничках:
Цветовая схема должна повторяться на всех страничках публикации, это создаст у посетителя ощущение связности сайта. Цвета ссылок старайтесь выбирать таким образом, чтобы, с одной стороны, читатель видел, что это ссылка, а с другой стороны, она бы не мешала ему читать основной текст. По поводу ссылок есть два полезных замечания: первое - как бы Вам не хотелось сделать цвета ссылок и посещенных ссылок одинаковыми (без веских на то причин), постарайтесь перебороть себя и придать им немного различия, для этого просто сделайте цвета уже посещенных ссылок чуть темнее; и второе - так уж получилось, что подчеркнутый текст в Web символизирует ссылку, поэтому поборите искушение использовать подчеркнутый текст в публикации, воспользуйтесь другим способом выделения. Вы ведь знаете, что очень неприятно, если, допустим, Ваша рука потянулась к ссылке с целью прочитать подробности, а мышка на нее ноль внимания :(.
графическое оформление сайта - во-первых, оно должно укладываться в общую цветовую схему; во-вторых, Вы должны продумать общую концепцию графического оформления. Все графические элементы можно разделить на два больших класса: рисованные и фотореалистические. Постарайтесь не смешивать эти два типа в оформлении. Кроме этого, в случае, если Вы используете на сайте фотографии в качестве иллюстраций, то перед использованием обработайте их - сделайте в случае необходимости тоновую и цветовую коррекцию, кадрирование, выберите примерный размер фотографий в публикации, найдите способ обработать края фотографии. А потом используйте данное оформление по всей публикации. И всегда пишите пояснения к фотографиям в параметре ALT тэга IMG - это будет восприниматься как подпись к фотографии и, кроме того, избавит пользователя от ожидания в случае, если его не интересует данная страничка.
навигация по сайту - именно она не дает посетителю запутаться в дебрях Вашего сайта. Всегда оставляйте для посетителя возможность перехода на главную страничку публикации. Кроме этого, не забывайте, что очень много людей попадают на Ваши странички через поисковые системы, т.е. не на первую страницу, и хороший сайт должен позволить читателю перейти на первую страничку; попросту говоря, дублируйте навигационную систему на всех страничках или сделайте так, чтобы они, по крайней мере, имели переход на основную страницу. В случае, если Вы выполняете навигационную панель графическими средствами, то обязательно сделайте ее текстовую копию и поместите где-нибудь снизу (текст в любом случае загружается быстрее графики :).
Возможно, я упустил некоторые элементы, участвующие в создании стиля, но основные перечислил. Соблюдение этих нехитрых правил позволит придать Вашим страничкам профессиональный вид и сделать информацию на Вашем сайте легкодоступной и быстронаходимой :).
Назад | Содержание | Вперед
Цветные подложки под текст
Вы наверняка видели на сайтах, что некоторые фрагменты текста располагаются на фоне, отличном от основного. Обычно это делается для "врезки" цитат или для выделения части текста, чтобы акцентировать на нем внимание. Такой эффект достигается за счет таблицы с одной ячейкой:
Здесь располагается фрагмент текста.
Цвет подложки мы можем задавать, используя атрибут bgcolor для таблицы. А чтобы текст на подложке не "прилипал" к границам, мы установим зазор при помощи атрибута cellpadding. Вот, в общем-то, и все, что требуется. И результат будет выглядеть вот так:
Предположим, что этот текст является цитатой или некой полезной информацией. Обратите внимание, как он выделяется на общем фоне страницы, акцентируя на себе внимание.
Дата модификации документа
Некоторые web-дизайнеры находят полезным отображать внизу странички дату последней модификации документа. Это делается для того, чтобы посетитель мог определить, насколько часто обновляется сайт. Правда это же накладывает и определенные обязательства по поддержке сайта. Согласитесь, что наблюдать прошлогоднюю дату доставляет мало удовольствия. Но если Вы все же решились использовать этот прием, то следующий скрипт Вам пригодится. Есть два способа добиться нужного нам результата. Первый заключается в том, что строчку с датой вы корректируете вручную, а второй, и он более привлекательный, заключается в использовании свойства lastModified объекта document. Для этого в нужном месте странички достаточно вставить следующую конструкцию:
Для чего это нужно?
Механизм баннеров позволяет оживить страничку и зрительно создать впечатление, что сайт все время меняется. Наиболее полезна эта функция будет для контент-сайтов - очень удобно создавать баннеры для конкретных статей и размещать их в локальной баннерной системе. Лучше всего, конечно, механизм прокрутки баннеров организовать на стороне сервера с применением Perl, PHP или ASP, но не у всех, к сожалению, есть доступ к CGI-скриптам. И, в этом случае, для решения задачи мы можем воспользоваться встроенными скриптовыми языками. Несмотря на то, что я буду объяснять как написать небольшую баннерную систему с использованием JavaScript, изложенные принципы вполне применимы и для любых других языков.
Для чего разрезают изображения?
Ведь проще сразу поместить картинку на страничку! Для этого есть несколько важных причин:
при загрузке страницы все ее элементы качаются броузером параллельно. Таким образом, одна картинка размером 100Кб будет качаться дольше, чем 10 картинок по 10Кб.
оптимизация. Часто встречаются изображения, на которых очень много одноцветных областей либо областей с небольшим содержанием цветов. В этом случае мы можем оптимизировать каждый фрагмент картинки независимо от остальных. А используя для одноцветных областей однопиксельный GIF соответствующего цвета, можно еще более уменьшить размер картинки.
для визуальных эффектов типа смены картинки при наведении курсора. Когда мы хотим изменить часть изображения, нам не обязательно грузить всю картинку целиком, достаточно правильно разрезать рисунок. И тогда дополнительно загружать можно будет лишь небольшой фрагмент, соответствующий изменяемой области.
для организации ссылок на картинках. Есть два способа сделать это.
Первый - использовать карту изображений. В этом случае где-то в коде мы описываем области изображения, соответствующие ссылкам, и непосредственно сами ссылки. Но эта простота, к сожалению, содержит несколько неприятных особенностей. Во-первых, мы не можем сделать для каждой ссылки свою всплывающую подсказку (ибо она будет общей для всей картинки), и, во вторых, владельцы текстовых броузеров и любители отключать графику не смогут вообще увидеть ссылки, и их придется дублировать где-нибудь при помощи чисто текстовых ссылок. И вот тогда мы можем воспользоваться вторым, более сложным способом, свободным от всех этих недостатков. Мы разрезаем картинку таким образом, чтобы области, при нажатии на которые будет осуществлен переход, были бы представлены в виде отдельной картинки (или нескольких картинок).
Добавление странички в "Избранное"
Подобно предыдущему скрипту, этот прием также работает лишь под Internet Explorer, но уже начиная с 4-ой версии. И точно такие же замечания по поводу его уместности. Размещая на видном месте ссылку на этот скрипт, мы позволяем пользователю при помощи одного щелчка добавить наш сайт в папку "Избранное". А сам скрипт выглядит следующим образом: Добавить сайт в Избранное
Другие полезные META-теги
Кроме описанных выше тегов есть еще несколько, которые часто встречаются на web-страничках. К примеру, META-тег с параметром "author" служит для указания автора странички и учитывается некоторыми поисковыми системами. И вообще у каждой странички должен быть автор, так что имеет смысл пользоваться этим тегом. Похожий META-тег с параметром "generator" автоматически проставляется различными HTML-редакторами и содержит информацию о программе, в которой была сделана страничка. Хотя смысла от этого тега, IMHO, немного. Некоторые авторы в его описании дублируют информацию META-тега "author". Еще одно частое использование META-тега - это указание языка, на котором написана страничка. Например, для того, чтобы сказать броузеру, что наша страничка русская и содержит текст в кодировке Win-1251, мы должны написать следующий код:
Но пользоваться этой возможностью следует очень осторожно, так как она порождает определенные проблемы, которые могут привести к тому, что текст на страничке станет нечитаемым. Более подробно об этом в следующей статье. Конечно, здесь описаны далеко не все META-теги, я постарался описать лишь самые употребляемые и полезные. Оставшиеся используются гораздо реже и если они Вам понадобятся, то Вы всегда сможете прочитать о них в любом хорошем HTML-справочнике.
Назад | Содержание | Вперед
_Footer.shtml
Как видите, основной документ предельно упрощен и состоит из директив, устанавливающих значения переменных title, keywords и description, которые и будут подставлены в код странички при обработке SSI-вставок, определяющих код для верхней и нижней частей странички. Реальный код SSI-вставок обычно гораздо сложнее и может включать в себя большее количество определяемых переменных и сложных условий, формирующих окончательный вид странички. Первое преимущество SSI с точки зрения дизайнера заключается в том, что при таком подходе web-мастеру, занимающимуся поддержкой сайта, можно не бояться случайно испортить дизайн. Элементы сложной верстки скрыты за счет использования SSI, и поддержка содержимого страничек становится гораздо более легким и приятным делом. Второе, не менее важное преимущество, - это возможность мгновенной замены дизайна сайта, не требующая переделывания страничек с информационным содержанием сайта. Для смены дизайна достаточно переписать SSI-вставки, формирующие внешний вид сайта. В нашем случае это файлы _header.shtml и _footer.shtml. Вот, вкратце то, что можно рассказать о SSI. Если Вас это заинтересовало, то возможно Вам будет интересно прочитать статью на сайте web-клуба, где об этом написано более подробно и приведен полный список SSI-директив с примерами.
Назад | Содержание | Вперед
Формат GIF
Поддерживает не более 256 цветов (меньше можно и часто нужно :);
Использует палитру цветов;
Использует сжатие без потери информации по методу LZW (который подобен применяемому в архиваторе PKZIP, и, следовательно, GIF-файлы практически не сжимаются);
Поддерживает чересстрочную развертку;
Является поточным форматом, т.е. показ картинки начинается во время перекачки;
Позволяет назначить одному из цветов в палитре атрибут прозрачный, что применяется при создании так называемых прозрачных GIFов;
Имеет возможность сохранения в одном файле нескольких изображений, что находит свое применение при изготовлении анимированных GIFов;
Поддерживает возможность вставки в файл управляющих блоков, которые позволяют вставлять комментарии в файл (например, об авторских правах :), осуществлять задержку между показами изображений и т.д.
А теперь немножко разъяснений - к чему эти свойства могут привести. Как Вы прочитали, GIF поддерживает не больше 256 цветов, а это значит, что все изображения, которые мы сохраняем в GIF-формате, явно или неявно уменьшают количество цветов, чтобы уложиться в этот лимит (разные программы с разным успехом). А отсюда вывод - если у Вас красивая фотография с плавными переходами и едва уловимыми оттенками цвета, то после преобразования все будет гораздо хуже - оттенки перестанут быть неуловимыми, и вся фотография приобретет неестественный, нереалистичный вид. Поэтому, если Вы хотите все-таки сохранить фотографию в формате GIF и передать все оттенки, то приходится идти на хитрости. Например, к фотографии можно применить какой-нибудь художественный фильтр и превратить ее в рисунок или применить тонирование. Зато нет никаких проблем с сохранением рисунков и чертежей в этом формате, они, как правило, хорошо сжимаются и не содержат много цветов. А теперь рассмотрим свойства и особенности второго популярнейшего формата в сети.
Формат JPEG
Позволяет сохранять полноцветные изображения с количеством цветов 16,7 млн. цветов (или 24bpp), причем, если в рисунке меньше цветов, то перед сохранением файла он все равно преобразуется в полноцветное изображение;
Использует сжатие с потерями информации, за счет чего достигает диких степеней сжатия файлов;
Поддерживает прогрессивную развертку, т.е. изображение появляется вначале с плохим качеством, и в процессе загрузки постепенно улучшается.
Пожалуй, это все преимущества формата JPG, и основное его предназначение - хранение изображений фотографического качества. Всю работу по обработке графики делайте в промежуточном формате
Ну вот, с форматами разобрались, теперь рассмотрим некоторые особенности работы с графикой. Несмотря на то, что мы сохраняем изображения в GIF-файле с поддержкой 256 цветов или в JPG-файле с 16,7 млн. цветов, работать с изображением нужно в каком-нибудь промежуточном формате, который позволяет сохранять картинку без искажений и без потери глубины цвета (например, TIFF и внутренние форматы редакторов типа PSD). Дело в том, что в процессе работы Вам понадобится многократно изменять или искажать изображение, что, в конце концов, приводит к многократной перезаписи файла. Многократная запись в формате GIF приведет к тому, что потеряются оттенки изображения, а в формате JPG - каждая новая перезапись файла будет вносить новые искажения, и через некоторое время фотография будет выглядеть ужасно. Поэтому всю работу по обработке графики делайте в промежуточном формате (и не смущайтесь огромными размерами файла) и только на самом последнем этапе преобразуйте изображение в нужный формат (часто - одновременно с оптимизацией размера файла).
Фрагментарная оптимизация
Фрагментарная оптимизация применяется в случае, если у нас есть некоторое большое изображение, содержащее сильно отличающиеся по количеству цветов области. В этом случае изображение можно разрезать на фрагменты и поместить их в таблицу, тогда в броузере оно будет выглядеть как единое целое. Теперь каждый фрагмент исходного рисунка мы оптимизируем отдельно. Для фрагментов, содержащих мало цветов, вполне может хватить палитры в 8 или 16 цветов, а для богатых цветами фрагментов можно использовать полную палитру в 256 цветов или сохранить в формате JPG. Этот способ позволяет уменьшить объем, занимаемый исходным файлом, примерно раза в 2-3 (в зависимости от конкретного изображения); кроме того, изображение будет загружаться более равномерно, т.к. все фрагменты будут качаться параллельно. Хотя, если количество фрагментов превысит 10, то возможного выигрыша и не получится, т.к. каждый фрагмент должен будет хранить свою копию палитры и служебной информации.
Функция проверки формы перед отправкой
А теперь перейдем к главному - к написанию той самой функции, что будет непосредственно осуществлять проверку формы. Давайте подумаем, что нам от нее требуется? Ну, во-первых, проверить, что нужные поля заполнены, а во-вторых, отослать форму. В случае же, если несколько из обязательных полей пусты, нам нужно сформировать об этом сообщение пользователю и переместить курсор на соответствующий элемент. Для начала напишем общую обвязку функции:
Примененный нами способ вызова функции через событие onSubmit в качестве результата работы функции требует возврата одного из логических значений: true или false. И, в зависимости от этого значения, форма либо будет отправлена, либо нет. Теперь попробуем написать проверочную функцию, привязанную к данной конретной форме. Как Вы помните, необходимых для заполнения полей у нас всего два: имя посетителя и его электронный адрес. Самое простое - это проверить содержимое каждого из обязательных полей на отсутствие текста:
Свойство href объекта location содержит адрес текущей страницы, который, кстати, можно в любой момент прочитать. И если мы при помощи скрипта поместим в эту переменную адрес какой-либо другой странички, то броузер немедленно осуществит переход.
Второй прием - это передача скрипту параметров при помощи адресной строки (так называемый метод GET). Осуществляется это добавлением к адресу странички знака '?' (вопрос) и перечислением после него всех необходимых переменных и их значений. Если переменных несколько, то они отделяются друг от друга при помощи знака '&' (амперсанд). Вот несколько примеров передачи параметров посредством метода GET:
Вы наверняка видели подобные конструкции на сайтах интернет-магазинов и при запросах поисковых систем.
Для нашего случая этот прием обозначает следующее - мы можем передать главной страничке, которая формирует фреймы - адрес странички, на которую попал пользователь. А уж на страничке-контейнере обработать этот адрес и создать нужные фреймы.
Код, который приведен ниже, должен быть размещен в начале каждой внутренней страницы, которая выводится во фрейме:
Заметьте, что конструкция несколько сложнее, чем я описал выше. В качестве параметра адреса я использовал свойство pathname объекта location, которое содержит полный путь текущей странички от корня сайта (для любопытных - location.href - содержит абсолютный адрес странички, включая название протокола и имя домена).
Если мы немного подумаем, то поймем, что перед автоматическим редиректом на новую страничку необходимо проверить - а не открыта ли страничка во фрейме? Иначе мы получим эффект бесконечного редиректа, когда странички будут все время открываться, пока компьютер не зависнет ввиду недостатка ресурсов. Окончательный код должен выглядеть вот так:
Т.е. мы читаем количество фреймов на родительской страничке и если это значение равно нулю (т.е. родителя нет), то мы осуществляем переход. В противном случае страничка загружена во фрейме и необходимости в редиректе нет.
Хорошо, мы передали главной страничке-контейнеру адрес странички, на которую попал пользователь, теперь необходимо создать нужную фреймовую структуру. Так как мы заранее не знаем, какая страничка будет во внутреннем фрейме, то мы не можем написать код для организации фреймов непосредственно. Это придется делать при помощи команд JavaScript:
Сейчас мы слегка модифицируем этот скрипт, чтобы в основной фрейм грузилась не страничка по умолчанию (content.htm), а наша внутренняя страничка. Но сначала придется из адресной строки узнать, какую же страничку грузить.
Для обработки переменных, передаваемых в адресной строке, JavaScript нам предоставляет свойство search объекта location (право, очень удобный объект - без его помощи мы не смогли бы сделать то, что делаем :). Данное свойство хранит в себе адрес строки запроса, которая располагается сразу после знака '?'. Т.е. оно содержит адрес нашей внутренней странички (!). Но использовать это значение пока рано, т.к. строка запроса содержит и начальный знак вопроса. Поэтому для начала нам необходимо его отрезать:
var string = location.search;
var current_page=string.substring (1, string.length);
А теперь я приведу полный, модифицированный вариант скрипта:
Кроме формирования фрейма, в который будет грузиться наша страничка, что обеспечивается следующим фрагментом:
document.write('');
мы также отслеживаем случай загрузки индексного файла, когда ему не передан адрес внутренней странички (например, пользователь сразу набрал главный адрес сайта), и в этом случае грузим обычную страничку по умолчанию (content.htm).
Вот, в общем-то, и все - мы справились с проблемой внутренних страниц. Осталось только сделать несколько замечаний и пояснений.
Применение метода GET для передачи адреса внутренней странички затрудняет использование других переменных, которые мы также хотим передать методом GET. Для реализации такого эффекта скрипт еще более усложнится, т.к. придется отслеживать все переменные, которые мы передаем, и, соответственно, формировать более сложную строчку для редиректа. Кроме того, если эти переменные предназначаются внутренней страничке, то подобный механизм передачи значений переменных придется реализовать и в индексном файле при формировании фреймов.
Внимательный читатель может заметить, что я использую не классическую форму передачи параметров (т.е. value=param), а сокращенную - сразу передавая нужное значение. Это возможно в простых скриптах и несколько облегчает их написание. Тем не менее, такой способ не позволяет нам передавать более одной переменной.
Основной индексный файл мы формируем при помощи конструкций JavaScript. А что будет, если на сайт зайдет человек с броузером, который не поддерживает JavaScript? В этом случае мы вообще ничего не увидим, ведь сформировать фреймы будет некому. Так что для разрешения этой проблемы мы воспользуемся тегами , внутри которых разместим обычное описание фреймов.
Позволь, дорогой читатель, я еще раз полностью приведу код индексной странички, в которой учтены все эти необходимые мелочи и особенности:
Пример документа с фреймами
Как поставить ссылку на внутреннюю страничку?
Осталось только одна проблема. Та самая, что указана в заголовке. Механизм формирования фреймовой структуры при ссылке на внутреннюю страничку мы уже разобрали, так что проблем со ссылкой на внутреннюю страницу не будет. А вот как пользователю сделать закладку на нужной страничке?
Самый простой, но достаточно эффективный способ - размещать в начале или в конце странички ссылку на страничку без фреймов. Разумеется, это можно делать не на всех страничках, а лишь на тех, что представляют самостоятельный интерес - например, статьи. Кстати, можно совместить ссылку с версией странички для печати - будет очень удачно.
А второй способ - опять же использование JavaScript, но он, к сожалению, ограничен только версиями Internet Explorer выше 5.0. По крайней мере, пока. Данный способ добавления странички в избранное я описывал раньше, поэтому не буду здесь повторяться. Те, кого это заинтересовало, могут прочитать об этом вот здесь.
Как видите, преодоление недостатков фреймов процесс достаточно хлопотный и неинтуитивный. Так что решайте сами - использовать Вам фреймы или поискать другие, более удобные способы, которые решат Ваши проблемы.
Архив с примерами скриптов, рассмотренных в данной статье, можно взять отсюда.
Назад | Содержание | Вперед
Эти возможности лучше не использовать
Вот список возможностей, предоставляемых тем или иным броузером, но которые желательно не использовать (как минимум до появления аналогичного свойства у другого броузера).
Использование атрибута bgproperties=fixed в тэге . Его появление заставляет фоновое изображение оставаться неподвижным, но, к сожалению, данный атрибут поддерживается только IE, начиная с версии 2.
Использование языка VBScript на динамических страничках. Почему? Потому что он абсолютно не поддерживается NN и, по всей видимости, никогда не будет. Да это и не нужно, так как есть JavaScript, предоставляющий те же самые возможности (и даже больше), что и VBScript, но поддерживающийся обоими броузерами.
Использование ActiveX компонентов. Такие странички будут работать исключительно на Windows-платформах.
Использование тэга для создания плавающих фреймов - поддерживается исключительно IE4 и выше.
Использование тэга - мигающий текст. Во-первых, он применим только в IE, начиная с 3-ей версии, а во-вторых, его применение не несет ничего, кроме раздражения и желания моментально уйти со странички.
Использование тэга - нежелательно точно по тем же причинам, что и у тэга
Применение специфического для NN тэга ;, выводящего текст на странице в несколько вертикальных колонок, наподобие газетных. В настоящее время для этой цели следует пользоваться таблицами.
Указание ширины и высоты изображений в процентах - поддерживается только IE.
Этот список, конечно, не полон, но это основные ошибки. Все, что описано, касается сайта, выставляемого в Internet. Если же Вы делаете сайт для внутренней сети (intranet), то можете использовать все, что Вам заблагорассудится :).
Назад | Содержание | Вперед
Как и где размещать код скрипта?
Но сначала мы немного отвлечемся от эффектов и поговорим о том, как и где размещать JavaScript. Так как язык скриптовый и рассчитан на работу на web-страничках, то его код размещается непосредственно в HTML-коде странички. Причем, код на JavaScript обычно состоит из двух частей:
Функции, которые вызываются из кода странички в ответ на какое-то событие
Код событий, которые вызывают функции :))
Описание функций должно располагаться в теге
- это гарантирует нам, что к моменту вызова функции она уже будет находиться в памяти компьютера. Для вставки кода используется специальный тег
Обратите внимание, что непосредственно сам код заключен в тег комментария. Это сделано для того, чтобы более старые броузеры игнорировали непонятные им команды. Новые же программы знают о существовании закомментированных скриптов и им это не мешает. Заметьте также, что закрывающий тег комментария несколько необычен и предваряется двумя косыми чертами. Две косые черты - это комментарий языка JavaScript, т.е. скрипт игнорирует все, что идет после него. А сделана такая сложная конструкция ради совместимости с Netscape, который закрывающий HTML-комментарий воспринимает как непонятную ему команду и, соответственно, вызывает ошибку. Ну вот, с основами применения скриптов разобрались, а примеры популярных и полезных эффектов, реализованных при помощи JavaScript, мы рассмотрим в следующей статье.
Назад | Содержание | Вперед
Как оформить таблицу?
Mike Melnikov (cherry-design@mail.ru)
Web-studio "Cherry-Design"
Давайте-ка займемся сегодня оформлением таблиц. Вам наверняка не нравится, как оформлены таблицы по умолчанию. То, что называется рамкой, практически никогда не вписывается дизайн. А их псевдотрехмерность просто ужасна!
Для изменения вида таблицы мы можем воспользоваться некоторыми параметрами, управляющими ее внешним видом:
bgcolor - цвет фона в таблице или ячейке;
border - толщина рамки таблицы;
cellspaсing - расстояние между ячейками;
cellpadding - расстояния от рамки до содержимого ячейки.
Как определить оптимальную степень сжатия?
Для этого нужно сохранить фотографию при нескольких значениях коэффициента сжатия, а затем внимательно рассмотреть ее. Критерием потери качества будут так называемые "дрожащие контуры", наиболее заметные в местах контрастных переходов, и появление пятен в областях с плавными переходами (см. рисунок). Тот коэффициент сжатия, при котором искажения еще не видны, но с увеличением его (коэффициента) на одну ступеньку становятся заметными, и будет оптимальным. Размер файла при таком разрешении будет минимальным и без потери качества. Если такую операцию проводить с каждой фотографией, то это может занять слишком много времени. Но есть выход - все фотографии можно подразделить на некоторые подтипы (например: черно-белые фотографии, тонированные фотографии, пейзажи и т.д.) и к каждому подтипу подобрать свой оптимальный коэффициент. Впоследствии можно просто применять ранее найденный коэффициент ко всем подобным фотографиям. Ниже представлены две одинаковые фотографии, но только с разной степенью коэффициента сжатия JPG. Слева - фотография, записанная в PhotoShop 5.0 со степенью сжатия 3 (не оптимизированная), а правая оптимизирована при помощи Ulead SmartSaver Pro. Обратите внимание на размеры фотографий: они различаются в три раза (при одинаковом качестве изображения).
Как правильно регистрировать сайт?
Mike Melnikov (cherry-design@mail.ru)
Web-studio "Cherry-Design"
Итак, Вы сделали первую версию своего сайта и даже вывесили его в Internet, но через некоторое время Вы заметите, что на него практически никто не ходит, за исключением Вас и изредка Ваших друзей. А ведь страничка, возможно, будет интересна и другим людям, а если у Вас есть своя фирма, то просто необходимо, чтобы другие люди смогли попасть на Ваш сайт.
Почему же так происходит, что счетчик на Вашей странице почти не увеличивается? Все просто - о Вас пока никто ничего не знает. Пора заняться раскруткой сайта - увеличением ежедневного количества посетителей. Есть несколько способов достижения этого:
регистрация в поисковых системах,
баннерообменные сети,
упоминание сайта в web-обозрении,
печатная реклама в газетах и журналах,
оповещение о появлении сайта в соответствующей эхо-конференции,
обмен ссылками с родственными сайтами,
упоминание адреса сайта в переписке и др.
Сегодня мы разберемся с самым простым, но эффективным способом раскрутки - регистрацией в поисковых системах и каталогах. Как это сделать правильно? И вообще, что понимать под "правильной" регистрацией? По-моему мнению, "правильно" обозначает, что в ответ на запрос по теме Вашего сайта, вы получаете список ссылок, в которых Ваш сайт находится одним из первых. Определимся с терминологией. Есть поисковые системы, а есть интернет-каталоги. Начнем с поисковых систем. По сути, это очень большая база данных, которая хранит в себе полные тексты всех зарегистрированных сайтов. Необходимым компонентом поисковых систем являются роботы. Робот это небольшая программа, которая ходит по ссылкам на сайте и индексирует все встреченные по пути странички. Для регистрации, мы должны сообщить роботу адрес нашего сайта. Поисковые системы достаточно загружены работой, ведь ежедневно приходят десятки тысяч запросов. По этой причине, после того как Вы послали запрос на регистрацию, пройдет порядка 1-2 недель, прежде чем сайт реально проиндексируется поисковым роботом. Интернет-каталоги - списки ресурсов, распределенные по категориям. Бывают специализированные и общие. Основное отличие их от поисковых систем заключается в том, что все запросы просматриваются людьми, которые оценивают ценность сайта, выбирают для него категорию в каталоге и корректируют предоставленное Вами описание. Перед тем, как регистрировать сайт, нужно немного подготовиться - впоследствии это сэкономит нам много времени. И начать нужно с поиска ключевых слов и составления вразумительного описания сайта.
Как правильно резать?
Ну вот, зачем резать картинку, мы выяснили, теперь перейдем к вопросу - как правильно резать? После того, как мы выберем картинку, предназначенную для нарезки, нужно внимательно ее проанализировать и мысленно выделить те области, которые желательно представить отдельными фрагментами. Такими областями могут быть следующие:
одноцветные области;
области с повторяющимся рисунком и небольшим количеством цветов;
небольшие фотографические области, для которых может оказаться оптимальным сжатие методом JPEG;
графические ссылки (типичный пример - меню);
области, для которых будет осуществлена подмена изображения при помощи скрипта. Типичное применение - изменение части картинки при наведении на меню. Частный случай - изменение вида кнопки меню.
Вторым шагом нужно будет нарисовать сетку будущей таблицы таким образом, чтобы мысленно выделенные области попали в отдельные ячейки. Причем, необязательно делать так, чтобы каждый фрагмент картинки попал в отдельную ячейку. Достаточно сделать таким образом, чтобы в одной ячейке можно было разместить несколько картинок - либо все в ряд, либо все в столбик. После того, как мы определили фрагменты, можно приступать непосредственно к нарезке. Удобнее всего это делать, расставив направляющие в PhotoShop (или ImageReady) и воспользовавшись инструментом "Crop". Но, подождите еще минутку, важное предостережение - если вы собираетесь резать сложную композиционную картинку, то перед началом желательно перевести все изображение к одной палитре, иначе может оказаться так, что фрагменты изображения будут иметь не совпадающие на краях оттенки цветов. После нарезки (а лучше это делать в процессе) нужно проанализировать каждый фрагмент на предмет нужного для него метода сжатия (GIF или JPEG) и количества необходимых цветов. Одноцветные области можно сразу откидывать, заменив их впоследствии одноцветным однопиксельным GIF-ом.
Как работает формат JPEG?
Mike Melnikov (cherry-design@mail.ru)
Web-studio "Cherry-Design"
Знание некоторых принципов возмещает незнание многих фактов. Сегодня мы поговорим о технологии сжатия JPEG и о том, за счет чего достигаются столь сильные степени сжатия.
Процесс сжатия по схеме JPEG состоит из нескольких шагов. На первом шаге производится преобразование изображения из цветового пространства RGB в пространство YUV, основанное на характеристиках яркости и цветности. Вся дальнейшая работа производится именно с этим цветовым пространством, которое благодаря некоторым своим характеристикам позволяет получать нам столь большие степени сжатия. Что же такого необычного в YUV представлении цвета по сравнению с RGB? А то, что оно наиболее близко к "естественному", тому, которое неосознанно выполняет человек. Y-компонента, или яркость, тесно связана с качеством картинки. Точнее сказать Y - это и есть картинка, только черно-белая. Компоненты U и V содержат информацию о цвете и позволяют нам раскрашивать Y-картинку. На следующем после преобразования шаге изображение разделяется на квадратные участки размером 8х8 пикселей. После этого над каждым участком производится т.н. дискретное косинус-преобразование (ДКП). При этом выполняется анализ каждого блока, разложение его на составляющие цвета и подсчет частоты появления каждого цвета. Человеческий глаз устроен таким образом, что наиболее чувствителен именно к яркостной составляющей изображения (Y-компонента) и наименее к цветовым. Причина этого феномена лежит в физиологии. Вы, наверно, помните, что зрачок, представляет собой оптическую линзу, которая фокусирует изображение на глазное дно, покрытое палочками и колбочками. Ну так вот, палочки - это сенсоры, воспринимающие именно яркостную составляющую, а колбочки - цветовую. Причем палочек на порядок больше, чем колбочек, и они гораздо более чувствительны к свету. Вспомните поговорку "Ночью все кошки серы". Почему так? Почему вечером все теряет цвет? Именно из-за того, что количества падающего на зрачок света не хватает для того, чтобы вызвать реакцию колбочки. Но и чувствительность человеческого глаза к разным цветам тоже величина не постоянная. Зрачок более чувствителен к нижней части цветового спектра, нежели к верхней. Формат JPG как раз и учитывает эти особенности.
Анализируя частотную информацию о появлении цветов, удается избавиться от части информации уже в процессе квантования. При этом цвета в верхней части спектра исключаются, что практически не сказывается на зрительном восприятии образа. Также исключается часть яркостной информации. Грубо говоря, JPG просто отбрасывает от яркостной составляющей половину полезного сигнала, а от цветовой 3/4. Это, конечно, примерно, т.к. существуют градации и более сложные схемы сжатия.
Количество информации, исключаемой при сжатии, зависит от требуемого качества изображения. При максимально-высоких уровнях сжатия детали полностью стираются, и блок становится серым. При средних и низких уровнях сжатия в файле сохраняется _примерная_ информация о цвете данного участка. Величина этой "примерности" напрямую зависит от степени сжатия. И это нужно понять, что в отличие от обычных форматов, сохраняющих изображение поточечно, JPG сохраняет примерные цвета. Если говорить научным языком, то JPG использует для сохранения ряды Фурье и при больших степенях сжатия просто отбрасывает члены ряда высшего порядка. И каждый раз при воспроизведении изображения на экране компьютер производит синтез. Причем, достаточно ресурсоемкий и заметный на медленных компьютерах. Из этого следует одно замечание - если Вы сохранили какой-нибудь рисунок в формате JPG, то восстановить его обратно до последнего пикселя невозможно! Именно из-за этого формат называется "форматом с потерями", и именно поэтому не рекомендуется пересжимать JPG-изображения, т.к. они обязательно станут хуже. А если это сделать 10 раз?
Информация о яркости и цвете затем кодируется так, что сохраняются только отличия между соседними блоками. В результате блоки представляются строками чисел, которые можно сжимать дальше. Поскольку в результате обработки блоки содержат много нулей, последняя стадия кодирования (выполняемая по алгоритму Хаффмана - подобного тому, что применяется в архиваторах) дает хорошие результаты. Отсюда еще небольшое замечание - сжимать JPG-файл архиватором не имеет никакого смысла, ведь он уже сжат. Полученный архив наверняка будет больше по размеру, чем исходная фотография.
Таким образом, первоначальные 24 бита на элемент изображения или 1536 бит (192 байта) на блок превращаются в горстку бит, которые описывают зрительные характеристики всего участка изображения.
Статья появилась, как результат переписки с Сергеем Ереминым по поводу оптимизации JPEG - за что ему большое спасибо.
Назад | Содержание | Вперед
Как сделать страничку стартовой?
В последнее время стало достаточно модным применять этот скрипт. Его смысл заключается в том, что где-нибудь на видном месте странички мы делаем ссылку, нажав на которую пользователь сможет сделать Вашу страничку стартовой, т.е. такой, которая загружается при запуске броузера и нажатии на кнопку "Домой". Этот прием может быть полезен для информационных ресурсов, но не стоит им особо злоупотреблять. К сожалению, на данный момент скрипт будет работать только под Internet Explorer версии 5.x. Учтите это. Сам же код требуется разместить в подходящем месте, а выглядит он так: Сделать стартовой страницей
Как создать привлекательный web-сайт?
Mike Melnikov (cherry-design@mail.ru)
Web-studio "Cherry-Design"
Итак, Вы желаете сделать полезный, красивый и удобный сайт. Что же для этого нужно? Какие факторы влияют на популярность web-сайта? С чего лучше всего начать создание собственного сайта? И какие ошибки могут подстерегать на этом пути?
Я попробовал выделить основные причины, которые, по моему личному мнению, влияют на популярность сайта:
Содержание или контент - является одной из самых важных составляющих. Если на сайте нет полезной информации, способной заинтересовать определенный круг людей, то можно ставить вопрос о необходимости существования сайта как такового. Вспомните, как много полезных страничек Вы видели в последнее время по сравнению с общим количеством посещенных Вами мест?
Дизайн - вторая по важности составляющая хорошего сайта. От дизайна зависит, насколько привлекательны будут странички, т.е. в конечном счете, сколько людей дополнительно захотят прийти и посмотреть на Ваш сайт. Ведь если Вам очень понравился дизайн сайта, то Вы, наверняка, расскажете о нем своим друзьям. Не забывайте, что встречают-то по одежке.
Для того, чтобы сделать хороший сайт, не обязательно даже использовать графику. Есть полезные сайты с минимумом графики (или даже без оной) и масса бесполезных, забитых мегабайтными картинками. Для web-сайта, как впрочем, и для других дизайнерских проектов, очень важным является стиль сайта, придающий ему собственное лицо и узнаваемость. В последующих статьях я опишу основы и принципы создания стильных web-страничек.
Скорость загрузки Ваших страничек - НИ ОДИН НОРМАЛЬНЫЙ ЧЕЛОВЕК НЕ БУДЕТ ЖДАТЬ ЗАГРУЗКИ ВАШИХ СТРАНИЧЕК В ТЕЧЕНИЕ ЧАСА. Отсюда следует вывод - странички нужно оптимизировать для получения наименьшего их размера (разумеется, в пределах разумного). Давайте посчитаем максимально допустимый объем средней WEB-странички.
Принимая к рассмотрению тот факт, что подавляющее число людей (и небольших организаций) имеют доступ к Internet через коммутируемую связь, т.е. по телефону (и, к тому же, немаловажный факт - за повременную оплату) и средняя скорость доступа по модему в России составляет 14400 бит/c, можно посчитать время, затрачиваемое на перекачку одного килобайта (это без учета того факта, что большинство людей держат открытыми одновременно 2-3 или более копий броузера - в этом случае просто разделите среднюю скорость доступа на количество открытых броузеров).
Следовательно, средняя скорость перекачки равна 14400 бит/с / 8 =1800 байт/с - это в идеальном случае, на самом деле немного меньше из-за повторных передач ошибочно принятых блоков. Поэтому примем среднюю скорость равную 1200-1500 байт/с. Только не путайте данную скорость, которая является скоростью до провайдера, со скоростью перекачивания Вашей странички, она может оказаться намного меньше, так как информация, достигшая Вашего компьютера, проходит через несколько компьютеров (как правило, 10-15), и скорость определяется самым узким звеном в цепи.
Допустим, днем загруженность маршрутизаторов (компьютеров, передающих информацию из одной сети в другую) больше, чем ночью. Кроме этого, если Ваш сервер находится на компьютере, который соединен с провайдером по коммутируемой (или выделенной) линии на скорости 14400 бит/с, то человек, сидящей по другую сторону Internet, ни за что не добьется скорости выше этой (я исключаю случаи с Proxy-сервером, т.к. на них, в основном, хранится часто запрашиваемая информация - например, странички поисковых систем). Я принимаю допустимым время загрузки одной странички не более 40 секунд (эта величина взялась из личного опыта :), отсюда - 40*1200= 48Кб - это и будет тот максимальный объем, который может иметь страничка вместе со всей графикой, находящейся на ней. Если Вам требуется разместить информацию большего размера, то предупредите об этом пользователя или распределите информацию по нескольким страничкам.
Раскрутка web-сайта - включает в себя не только регистрацию Вашего сервера во всех возможных Поисковых системах мира, но и такие средства, как размещение информации в средствах массовой информации (URL - в газете), а также упоминание о Вашем сайте на визитках, рекламках, в газетных и журнальных статьях и т.д. Кроме этого, на web-сайте обязательно должен быть упомянут E-mail для связи с Вами или, в случае его отсутствия, хотя бы номер телефона.
Ясная и логическая структура размещения информации на Вашем сервере - ничто так не утомляет при поиске нужной информации, как плохо структурированные сервера.
Отсутствие орфографических и грамматических ошибок - этот пункт я включаю сюда ввиду громадного количества ошибок на свежепоявляющихся web-сайтах. Ведь это просто - набивайте текст в редакторе с проверкой орфографии и перечитывайте то, что Вы написали перед выставлением Вашего сервера на всемирное обозрение.
Вот, пожалуй, и все основные принципы, соблюдение которых гарантирует успех Вашему WEB-сайту, а через него - и благополучие, и расширение известности Вас, Вашей фирмы, клуба, движения.
В качестве упражнения попробуйте пройтись в WEB и посчитать время на загрузку различных страничек, а также обоснованность их загрузки (исходя из содержания). Посмотрите, насколько понятна структура сервера и удобство пользования им.
Содержание | Вперед
Ключевые слова
К подбору ключевых слов стоит подойти серьезно. Правильный их выбор позволяет сильно повысить позицию сайта при запросах. Какие же слова следует подбирать? Разумеется, те, что наиболее верно отражают специфику именно Вашего сайта. При этом постарайтесь избегать лишних и общих фраз. Представьте себя на месте человека, который пытается найти Ваш сайт. С каких слов бы Вы начали поиск? Что бы набрали в поисковой системе? Нужно подобрать порядка 20-30 ключевых слов. А потом проверить их, набрав в поисковой системе. Список, каких сайтов возвращается? Связаны ли они с тематикой Вашего сайта? Если да, то хорошо - значит, Вы уже более-менее подобрали основные слова. В качестве примера, посмотрите какие ключевые слова используются в найденных страничек.
Конфигурирование скрипта
Теперь сконфигурируем скрипт. Опуская несущественные для нас детали, листинг нашего скрипта можно представить так: #!/usr/bin/perl
$mailprog = '/usr/lib/sendmail'; @referers = ('www.cherry-design.spb.ru','195.5.155.48');
# Здесь располагается код скрипта.
В данном случае вся конфигурация сведется к установке IP-адреса компьютера, на котором расположен web-сервер, и конфигурирования путей для программ perl и sendmail. Первая - непосредственно интерпретатор языка PERL, а вторая - это программа, к которой обращается скрипт, и которая осуществляет посылку сообщения по почте. Адрес расположения PERL-интерпретатора всегда задается первой строкой в скрипте, и в данном случае программа доступна по адресу /usr/bin/perl. Расположение программы sendmail задается второй строчкой в нашем листинге. И, наконец, третья строчка задает имя и IP-адрес web-сервера (для примера я указал параметры моего сайта). Вот, практически, и все. Наш скрипт осталось только переписать в каталог. Но тут есть одна тонкость - дело в том, что скрипт будет располагаться на UNIX-машине, а текст в UNIX-формате имеет одно отличие от Windows: конец строки в UNIX обозначается символом возврата каретки , а в Windows - парой символов: перевод строки и возврат каретки . Если переписать такой файл по FTP в режиме BINARY, то скрипт работать не будет!!! При копировании скрипта на web-сервер нужно установить режим ASCII, который автоматически преобразует концы строк к UNIX-формату. У скрипта FormMail есть много дополнительных и очень удобных возможностей. Например - переадресация странички с подтверждением отправки сообщения или проверка правильности заполнения полей. Если Вас это заинтересует, то сходите на страничку Мэтта, и там Вы найдете не только описание FormMail, но и много других полезных скриптов. В этой статье я хотел просто показать, как применять готовые скрипты для нужд своего сайта, и поэтому опустил все несущественные детали и остановился на рассмотрении практических вопросов.
Назад | Содержание | Вперед
Механизм работы фреймов
Если все же решено применять фреймы, то давайте разберемся с тем, как правильно писать HTML-код и работать с ними. Любая страничка, содержащая фреймы, начинается с написания специальной странички-контейнера, которая сама не показывается, но содержит в себе указания для организации фреймовой структуры и ссылок на участвующие файлы. Вот, как она выглядит: index.htm - страничка контейнер Frame page
Ваш броузер не поддерживает фреймы, пожалуйста, обновите его.
И сразу напишем код для страничек, входящих в фреймовую структуру. left.htm - страничка, содержащая меню Menu page