Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Web-технологии. Ч.1. Учебное пособие (курс лекций)

.pdf
Скачиваний:
2
Добавлен:
07.09.2026
Размер:
2 Мб
Скачать
list), располагаются только в контейнере <form> . . . </form>. Всем перечисленным элементам в языке JavaScript соответствуют от­дельные объекты. Программы на языке JS могут обрабатывать формы непосредственно, получая значения, содержащиеся в необ­ходимых элементах (например для проверки ввода обязательных данных). Кроме того, данные из формы обычно передаются для обработки на удаленный Web-сервер.
Синтаксис:
<form name="formName" target="windowname" action="serverURL" method="get" | "post" enctype="encodingType" [onSubmit="handlerText"]> </form>
Здесь атрибут name – строка, определяющая имя формы. Ат­рибут target задает имя окна, в котором должны обрабатываться события, связанные с изменением элементов формы. Для этого требуется наличие окна или фрейма с заданным именем. В каче­стве значений данного атрибута могут использоваться и зарезер­вированные имена _blank, _parent, _self и _top.
Атрибут action задает адрес URL сервера, который будет по­лучать данные из формы и запускать соответствующий CGI­скрипт. Также можно послать данные из формы по электронной почте, указав при этом значения этого атрибута адрес URL типа mailto: . . . Формы, передаваемые на сервер, требуют задания мето­да передачи (submission), который указывается при помощи атри­бута method. Метод GET присоединяет данные формы к строке адреса URL, заданного в атрибуте action. При использовании ме­тода POST информация из формы посылается как отдельный по­ток данных. В последнем случае CGI-скрипт на сервере считывает эти данные из стандартного входного потока (standard input stream). Кроме того, на сервере устанавливается переменная среды с именем QUERY_STRING, что обеспечивает еще один способ получения этих данных. Атрибут enctype задает тип кодировки MIME (Multimedia Internet Mail Extensions) для посылаемых дан­ных. Типом MIME по умолчанию является тип application/x-www-
form-urlencoded.
131
К свойствам и методам формы в JavaScript-прграмме можно обратиться одним из способов:
formName.propertyName formName.methodName (parameters)
forms[i].propertyName forms[i].methodName (parameters)
Здесь formName соответствует атрибуту name объекта form, а i является целочисленной переменной, используемой для обра­щения к отдельному элементу массива forms, который соответ­ствует определенному тегу <form> текущего документа.
Использование массива forms
К любой форме текущего гипертекстового документа можно обращаться как к элементу массива forms. Для этого необходимо указать индекс запрашиваемой формы. Например, forms[0] – пер­вый тег <form> в текущем документе.
document.forms[i] document.forms.length document.forms['name']
Переменная i – это индекс, соответствующий запрашиваемой форме. Выражение вида
document.forms[i]
можно также присвоить переменной
var myForm = document.forms[i];
Теперь, если в форме имеется, к примеру, поле ввода, опреде­ленное в HTML-теге
<form> <input type=text name=myField size=40> . . . </form>
то в JS-программе к этому полю позволяет обращаться пере­менная myForm. В частности, при помощи следующего оператора содержимое данного поля ввода присваивается новой переменной с именем result:
var result = myForm.myField.value;
Значение свойства length соответствует количеству форм в документе:
132
var numForms = document.forms.length
Массив forms содержит данные, которые используют только для чтения.
Свойства
Объект form имеет шесть свойств, большинство из них соот­ветствуют атрибутам тега <form>:
action – соответствует атрибуту action;
elements – массив, содержащий все элементы формы;
encoding – соответствует атрибуту enctype;
length – количество элементов в форме;
method – соответствует атрибуту method;
target – соответствует атрибуту target.
Массив forms имеет только одно свойство length – количество форм в документе.
Методы
Метод submit() применяется для передачи формы из JavaScript-программы. Его можно использовать вместо тега <input type=submit>, имеющегося в большинстве форм, информация ко­торых должна передаваться на сервер.
Обработчики событий
Обработчик события onSubmit() позволяет перехватывать со­бытия, связанные с передачей данных формы. Такие события воз­никают либо после нажатия кнопки передачи данных, определен­ной тегом <input type=submit> в контейнере <form>, либо при пе­редаче данных формы с помощью метода submit(), вызванного из JS-прграммы.
Пример
В следующем примере при нажатии кнопки передачи данных содержимое текстового поля посылается адресату по электронной почте:
Вот текст этой программы:
<form nethod="post" action="mailto:my@mail.ru" enctype="text/plain">
<input type="submit" value="Отправить почту"> <input type="reset" value="Очистить форму">
<textarea name="email" rows=5 cols=60>
133
</textarea> </form>
Работа с изображениями
В браузере рисунки рассматриваются как объекты image, а все рисунки, содержащиеся в текущем документе, помещаются в массив images, который можно использовать для обращения к лю­бому рисунку, определяемому тегом <img>. В частности, можно динамически обновлять изображения, изменяя их свойство src. Примеров тому в интернете очень много. Для начала приведем тег <img>, распишем полностью:
<img src="fileOrUrl"
[alt="altText"]
[lowsrc="fileOrUrl"] [width=w] [heigth=h] [border=b] [vspace=v] [hspace=h]>
В атрибуте src содержится имя или адрес URL файла, который нужно вывести в документе. Рисунок должен храниться в формате GIF, JPEG, или PNG. С помощью атрибута alt задается альтерна­тивный текст, появляющийся на экране: в момент загрузки текста, если пользователь заблокировал вывод изображений и поясняю­щая надпись под курсором мыши. Атрибут lowsrc позволяет пред­варительно выводить на экран изображение с низким разрешени­ем. При этом рисунок загружается в два этапа. Атрибуты width (ширина) и height (высота) позволяют задать размеры рисунка в пикселах, атрибут border – ширину рамки в пикселах, а атрибуты vspace и hspace – размеры вертикального и горизонтального зазо­ров между границами изображения и другими элементами доку­мента.
Для обращения к свойствам объекта image используется сле­дующий синтаксис:
document.images[i].propertyName
134
где i – индекс элемента массива, который соответствует нужному рисунку. Первым рисунком в документе будет document.images[0]. Массив images является свойством объекта document, поэтому при обращении к рисунку необходим префикс document к имени мас­сива. Тег <img> не имеет атрибута name, поэтому выражение вида "document.imgName" приведет к ошибке.
Свойства
Все свойства объектов image соответствуют атрибутам тега
<img>, за исключением свойства complete. Эти свойства, кроме свойств src и lowsrc, значения которых могут быть изменены ди­намически, имеют значения только для чтения:
src – соответствует атрибуту src тега <img>;
lowsrc – соответствует атрибуту lowsrc тега <img>;
height – соответствует атрибуту height тега <img>;
width – соответствует атрибуту width тега <img>;
border – соответствует атрибуту border тега <img>;
vspace – соответствует атрибуту vspace тега <img>;
hspace – соответствует атрибуту hspace тега <img>;
complete – содержит булево значение, которое указывает, за- гружен рисунок в браузер или нет (true – загружен, false – нет);
type – для объектов image содержит значение "image".
Перед загрузкой рисунка появляется его рамка, внутри кото­рой отображается строка, заданная в атрибуте alt (в версии 5 и выше IE, пользователь при желании может отключить рамки с alt­текстом отображаемые в момент загрузки рисунка). Рисунок мож­но изменять динамически, присваивая атрибуту src или lowsrc в качестве значения новый адрес URL.
Методы и обработчики событий
Объект image не имеет методов.
Обработчики событий:
onAbort – обработка события, возникающего при прерывании загрузки рисунка, т.е. при нажатии клавиши [Esc] или активизации новой гиперсвязи, в то время, когда рисунок загружается;
onError – обработка события, связанного с ошибкой загрузки рисунка, т.е. когда невозможно найти рисунок по указанному ад­ресу URL;
135
onLoad – соответствующее событие, инициализируется в
начале загрузки рисунка. При загрузке анимированного GIF-а это событие возникает несколько раз и зависит от числа кадров ани­мационной последовательности.
Рассмотрим, как из JavaScript можно адресоваться к изобра­жениям, представленным на web-странице. В рассматриваемом языке все изображения предстают в виде массива. Массив этот называется images и является свойством объекта document. Каждое изображение на web-странице получает порядковый номер: первое изображение получает номер 0, второе – номер 1 и т.д. Таким об­разом, к первому изображению мы можем адресоваться, записав
document.images[0].
Каждое изображение в HTML-документе рассматривается в качестве объекта Image. Объект Image имеет определенные свой­ства, к которым и можно обращаться из языка JavaScript. Напри­мер, можно определить, который размер имеет изображение, обра­тившись к его свойствам width и height. То есть по записи
document.images[0].width
Можно определить ширину первого изображения на web­странице (в пикселах). К сожалению, отслеживать индекс всех изображений может оказаться затруднительным, особенно если на одной странице их довольно много. Эта проблема решается назна­чением изображениям своих собственных имен. Так, если вводит­ся изображение с помощью тэга
<img src="img.gif" name="myImage" width=100 height=100>
то можно обращаться к нему, написав
document.myImage или document.images["myImage"].
Загрузка новых изображений
Если необходимо осуществлять смену изображений на web­странице, то для этого нам понадобится атрибут src. Как и в случае тэга <img>, атрибут src содержит адрес представленного изобра­жения. в языке JavaScript имеется возможность назначать новый адрес изображению, уже загруженному в web-страницу, и в ре­зультате, изображение будет загружено с этого нового адреса, за­менив на web-странице старое. Рассмотрим к примеру запись:
<img src="img1.gif" name="myImage" width=100 height=100>
136
Здесь загружается изображение img1.gif и получает имя myImage. В следующей строке прежнее изображение img1.gif за-
меняется уже на новое – img2.gif:
document.myImage.src= "img2.src";
При этом новое изображение всегда получает тот же размер, что был у старого. И уже невозможно изменить размер поля, в котором это изображение размещается.
Упреждающая загрузка изображения
Один из недостатков такого подхода может заключаться в том, что после записи в src нового адреса начинает процесс загруз­ки соответствующего изображения. И поскольку этого не было сделано заранее, то еще пройдет некоторое время, прежде чем но­вое изображение будет передано через Интернет и встанет на свое место. В некоторых ситуациях это допустимо, однако часто по­добные задержки неприемлемы. И что же мы можем сделать с этим? Конечно, решением проблемы была бы упреждающая за­грузка изображения. Для этого мы должны создать новый объект Image. Рассмотрим следующие строки:
hiddenImg= new Image(); hiddenImg.src= "img3.gif";
В первой строке создается новый объект Image. Во второй строке указывается адрес изображения, которое в дальнейшем бу­дет представлено с помощью объекта hiddenImg. Как мы уже виде­ли, запись нового адреса в атрибуте src заставляет браузер загру­жать изображение с указанного адреса. Поэтому, когда выполняет­ся вторая строка нашего примера, начинает загружаться изображе­ние img2.gif. Но как подразумевается самим названием hiddenImg ("скрытая картинка"), после того, как браузер закончит загрузку, изображение на экране не появится. Оно будет лишь будет сохра­нено в памяти компьютера (или точнее в кэше) для последующего использования. Чтобы вызвать изображение на экран, мы можем воспользоваться строкой:
document.myImage.src= hiddenImg.src;
137
Но теперь изображение уже немедленно извлекается из кэша и показывается на экране. Таким образом, сейчас мы управляли упреждающей загрузкой изображения. Конечно браузер должен был к моменту запроса закончить упреждающую загрузку, чтобы необходимое изображение было показано без задержки. Поэтому, если необходимо предварительно загрузить большое количество изображений, то может иметь место задержка, поскольку браузер будет занят загрузкой всех картинок. Необходимо учитывать ско­рость связи с Интернет – загрузка изображений не станет быстрее, если пользоваться только что показанными командами. Мы лишь пытаемся чуть раньше загрузить изображение – поэтому и пользо­ватель может увидеть их раньше. В результате и весь процесс пройдет более гладко.
Эффективное создание баннеров
Реклама в баннерных сетях является, наверное, одним из по­пулярнейших способов раскрутки интернет проектов. Баннер – это графический файл, который размещается на странице сайта и ко­торый имеет ссылку на другую web-страницу. Баннеры имеют разные размеры. Основной единицей измерения при этом являют­ся пиксели. Вот наиболее известные размеры: 468x60, 120x60, 100x100, 88x31. Существуют и другие, но менее известные разме­ры баннеров. Как нетрудно догадаться, чем больше баннер, тем он эффективнее. Очень важным является размер (объем) самого фай­ла баннера. Обычно, принято, чтобы размер баннера был не более 15Kb. Конечно, с введением новых форматов (flash) достичь этого будет уже невозможно.
Существуют следующие способы баннерной рекламы:
Участие в баннерообменных системах.
Прямая договоренность между web-мастерами сайтов об
обмене баннерами между собой.
Покупка показов баннеров на других сйтах или в баннеро- обменных системах.
Остановимся подробнее на баннерообменых системах. Банне­рообменные системы – это службы которые позволяют автомати­зировать взаимообмен и показ баннеров между различными сай­тами – участниками системами. Как происходит данный процесс. Зарегистрировавшись в системе баннерообмена, вы загружаете в
138
нее свой баннер и вставляете в свои страницы (в которых хотите показывать чужие баннеры) специальный код. Каждый раз, когда данные страницы загружаются, на них показываются баннеры чу­жих сайтов. Каждый показ баннера учитывается на вашем внут­реннем счете (аккаунт) в системе. Но не все показы чужих банне­ров засчитываются вам. Система оставляет себе комиссию за предоставленную вам услугу. Это примерно 10%-20%. Остальные показы вы можете тратить по своему усмотрению. Можете их накапливать, (некоторые системы выкупают свои показы). Можете тратить их на показы своих баннеров на чужих сайтах.
В некоторых баннеророобменных системах предусмотрен таргетинг. Таргетинг – это возможность выбора условий показа вашего баннера на чужих сайтах – участниках системы. Это может быть выбор сайтов определенной тематики, определение времени показа, количества показов и многое другое. Но, к сожалению, не все баннерообменные системы принимают сайты с малым посе­щением. У многих таких систем существуют планки, при которых ваш сайт может быть принят в систему. Например, не менее 100 показов чужих баннеров в день. Ссылки на некоторые баннерооб­менные системы находятся на странице Баннерный обмен.
Основным показателем в баннерной рекламе является отклик или эффективность баннера. Коротко отклик обозначается CTR (click/through ratio). Данное число высчитывается в процентах. Так если CTR = 2%, то это значит, что только на 2% из всего количе­ства показанных баннеров кликнули. Сейчас, средним CTR счита­ется 2%, но на самом деле, на практике получается еще меньше. Но есть, некоторые советы, следуя которым можно хоть как-то увеличить CTR баннеров.
Сначала советы по созданию баннеров:
Следует сразу определиться, чего необходимо добиться от по­казов данного баннера. Хотите ли вы просто увеличить посещае­мость сайта или хотите привлечь целевого посетителя. Если же вам нужен целевой посетитель, то и баннер должен быть соответ­ственно оформлен. Он должен давать точное представление, о чем идет речь.
Как уже было сказано, чем больше размер баннера, тем выше его эффективность. На иностранных сайтах, например, сейчас по­пулярны баннеры – небоскребы. Точного их размера сказать вам
139
не смогу, но примерно это 120x700. В некоторых российских бан­нерных системах также практикуется работа с данными банерами.
Несмотря на кажущуюся эффективность большеформатных баннеров, у них есть и отрицательные стороны. Так чем больше баннер, тем больше его размер, тем дольше загружается страница с таким баннером. Возникает вероятность, что баннер не успеет за­грузиться на страничку, а пользователь уже уйдет с нее. Особенно это касается, на мой взгляд, модных сейчас flash баннеров. Конеч­но, flash баннеры – это новое слово в баннеростроении, но их большой размер (объем) напрочь отбивает желание связываться с ними.
Использование анимации увеличивает отклик баннеров.
Использование в оформлении баннера стандартных элементов windows, таких как полосы прокрутки, кнопки и др. также увели­чивают его эффективность.
Теперь советы по размещению баннеров:
Отклик баннера расположенного на самом верху выше, неже­ли отклик баннера расположенного в самом низу страницы.
Баннер расположенный на 1/3 ниже от верха экрана дает CTR на 70% больше, чем баннер расположенный в само верху.
Баннер не стандартного размера (125x125), расположенный в нижнем правом углу первого экрана страницы (пользователь не должен скроллировать страницу чтобы увидеть баннер) дает CTR на 228% больше, чем стандартный баннер (468x60), расположен­ный самом верху.
Используйте ALT в теге IMG (если вы не пользуетесь банне­рообменными сетями). Многие пользователи отключают графику.
Текст размещенный над и под баннером, увеличивает его эф­фективность.
Изменение изображений в связи с событиями, инициируе-
мыми пользователем
Можно создавать красивые эффекты, используя смену изобра­жений в качестве реакции на определенные события. Например, можное изменять изображения в тот момент, когда курсор мыши попадает на определенную часть страницы. Проверьте, как работает следующий пример, просто поместив курсор мыши на картинку.
140
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]