Скачиваний:
100
Добавлен:
09.05.2014
Размер:
601.5 Кб
Скачать

4. Постскриптум.

Думаю, что о передаче запросов на сервер не стоит рассказывать подробно. Это уже дело чисто РНР техники :-). Достаточно внимательно прочитать раздел о функциях работы с сокетами, или о функциях модуля CURL в официальной документации РНР.

Из выше сказанного, надеюсь теперь понятно, почему вопрос: "Как мне сформировать POST запрос, используя функцию header?" — бессмысленен. Функция header(string) добавляет запись только в заголовок запроса, но никак не в тело запроса.

Есть еще один тип запросов — Content-Type: multipart/mixed, надеюсь после прочтения данной статьи Вы легко разберетесь с данным типом сами. Подробно изучить его можно Здесь

О запросах других типов можно прочитать в официальной спецификации протокола HTTP 1.0 здесь.

Для чего нужны клиентские сценарии?

Начиная изучать web-технологии, Вы узнали, что все web-документы создаются с помощью языка HTML, который не является языком программирования, а лишь языком разметки гипертекстовых документов. Теперь же выясняется, что для создания web-документов недостаточно знать только язык HTML, а нужно уметь еще и программировать. Зачем это?  Дело в том, что без программирования можно создавать лишь статичные web-документы, которые никак не реагируют на действия пользователя - их можно только просматривать.  Клиентские сценарии обеспечивают интерактивность документов и выполняют ряд других полезных функций. Вот их неполный перечень: 

1. Первичная обработка пользовательских данных (введенных посредством формы) до отправки их на сервер.

Если данные введены неверно или не в полном объеме (например, не заполнены обязательные поля, число символов в ИНН, номере страхового свидетельства, паспорта и т.д. не соответствует определенному количеству, в e-mail отсутствует знак @ или точка, в телефонном номере есть буквы, в фамилии - цифры и т.д. ) на клиенте формируется сообщение об ошибке и соответствующий элемент формы приобретает фокус. Данные пользователя не теряются. Экономится время и снижается траффик. На сервере сохраняются только проверенные данные.  Для обеспечения такой проверки кнопка submit заменяется кнопкой button, для которой назначается обработчик события onclick. Его значением является вызов клиенской функции, которая обеспечивает проверку пользовательских данных и, либо сообщает об ошибке и обеспечивает фокус тому или иному элементу, либо отправляет данные серверному сценарию (указанному в атрибуте action тэга form.)

2. Динамическое изменение стиля или содержания всего документа или отдельных фрагментов в зависимости от характеристик браузера клиента.

Средствами клиентских сценариев можно автоматически выяснить название и версию браузера клиента, а также ряд характеристик браузера и ПК пользователя (например, есть ли поддержка FLASH, Java-апплет, каково разрешение дисплея и т.д.). В зависимости от этого можно предусмотреть загрузку, например, текстовой версии сайта. Настройку стиля можно сделать интерактивной - например на сайте www.ecomstation.ru пользователю предлагается выбрать цветовую схему оформления сайта. В последнее время все большее распространение получают Системы Управления Контентом (CMS - Content Management Systems). Это клиент-серверные приложения, позволяющие неподготовленному в области Web-технологий пользователю создавать на сайте новые страницы, разделы, редактировать или удалять существующие. Они содержат встроенные WYSIWYG компоненты, позволяющие легко форматировать HTML-документ в визуальном режиме (сгенерированный код затем записывается в серверную базу данных). См., например,FCKEditor.

3. Обеспечение интерактивности в зависимости от назначения web-сайта, реагирования на различные события

 Обработка событий:

 нажатие (или наведение курсора) на кнопки, сенсорные области, другие фрагменты документов (см. раздел Обработка событий)

 Cоздание анимационных эффектов за счет смены источника изображения, определения траектории движения фрагмента, движения на курсор

 "Перетаскивание" фрагментов

 Включение и выключение звука

 Появление или сокрытие отдельных фрагментов

 Создание хронометра (например, для систем онлайнового тестирования)

 Создание кроссвордов 1 или 2

 и многое другое...

4. Автоматическое обновление страниц через определенные интервалы времени.

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

5. Всевозможные расчеты.

Например, пересчет стоимости корзины при изменении ее состава или пересчет симплексной таблицы при переходе от одного опорного плана к другому.

6. Создание ключиков (cookies) - небольших количеств информации на компьютере клиента.

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

Java и JavaScript - просьба не путать!

Основными языками создания клиентских сценариев являются JavaScript и VBScript. Нередко язык JavaScript называют Java. Это грубая ошибка. Дело в том, что Java - это другой язык программирования. И Java, и JavaScript - языки программирования для Интернет, но между ними существует принципиальная разница.  На языке JavaScript, как Вы уже знаете, создаются программы (так называемые клиентские сценарии), которые встраиваются в код HTML-документа и интерпретируются браузером.  Программы, написанные на языке Java сначала компилируются, а уже потом в откомпилированном виде перемещаются по сети. Главным преимуществом языка Java является платформенная независимость, т.е. возможность выполнения на компьютерах с различной архитектурой, различными операционными системами.  Язык Java позволяет создавать программы двух типов: 

приложения (applications), т.е. обычные прикладные программы, аналогичные тем, которые создаются на других языках программирования;

апплеты (applets), т.е. программы, которые могут существовать только в среде HTML-документа (пример). Язык JavaScript, или язык сценариев, появился в в конце 1995 г. благодаря совместным усилиям компаний Netscape и Sun Microsystems. Технология Java к этому времени бла уже очень популярной. Как и JavaJavaScript является объектно-ориентированным.  Почти сразу же после появления языка JavaScript, компания Microsoft оценила его значимость и создала собственную его версию - язык сценариев JScript. Этот язык сейчас широко применяется для разработки серверных сценариев, в частности, в технологии Microsoft ASP(Active Server Pages). 

Контейнер <script>...</script> - куда его пристроить?

Для того, чтобы браузер распознал сценарий, встроенный в HTML-код, его (сценарий) следует заключать в контейнер

<script>...</script>

Сценарий, заключенный в контейнер, может располагаться в любом месте документа, но по возможности следует размещать сценарии в секции<head>...</head>. В этом случае сценарий будет загружен в память сразу же по вызову документа браузером. Кроме того, размещение сценариев в секции <head>...</head> делает код более понятным.  Документ может содержать несколько сценариев - каждый из них должен быть заключен в контейнер <script>...</script>. Исключение составляют сценарии, выполняемые при обработке какого-либо события: они (без контейнера <script>...</script>) помещаются непосредственно в соответствующий тэг. Например, при щелчке на кнопке вызывается метод alert:

<input type="Button" value="Проверим работу метода alert" onclick="alert('ЭТО НАШ ПЕРВЫЙ JAVASCRIPT-сценарий!!!!');">

Сценарий можно разместить отдельно от HTML-документа - в другом файле. В этом случае тэг <script> должен иметь атрибут src='адрес файла со сценарием'. Файл, содержащий сценарий, должен иметь расширение js. Тэгов <head>, <body>, <script> в нем указывать не нужно - там должен содержаться только сам сценарий. 

<script src="myScript.js"></script>

Обработка событий в JavaScript

Популярность JavaScript во многом обусловлена именно тем, что написанный на нем сценарий может реагировать на действия пользователя и другие внешние события. Каждое из событий связано с тем или иным объектом: формой, гипертекстовой ссылкой или даже с окном, содержащим текущий документ.

В качестве примеров внешних событий, на которые могут реагировать объекты JavaScript, можно привести следующие.

окончание загрузки документа в окно (или окончание загрузки документов во все фреймы окна). Это событие связано с объектом window;

щелчок мышью на объекте. Это событие может быть связано с интерактивным элементом формы или с гипертекстовой ссылкой;

получение объектом фокуса ввода. Это событие может быть связано с объектами типа Text, Password и с другими интерактивными элементами;

передача на сервер данных, введенных пользователем с помощью интерактивных элементов. Связывается с формой.

Обработка события производится с помощью специально предназначенного для этого фрагмента кода, называемого обработчиком события. Для каждого события JavaScript предоставляет свой обработчик. Однако при построении сценария можно создавать собственный обработчик события и использовать его вместо обработчика, заданного по умолчанию.

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

Для того чтобы указать интерпретатору JavaScript на то, что обработкой события должен заниматься обработчик, необходимо включить в HTML-дескриптор следующее выражение:

имя_обработчика="команды_обработчика"

Это выражение включается в тэг, описывающий объект, с которым связано событие.

Например, если необходимо обработать событие, заключающееся в получении фокуса полем ввода, дескриптор, описывающий этот интерактивный элемент, должен иметь примерно следующий вид:

<input type="text" name="Inform" onFocus="handleFocus();">

Имя обработчика является одним из атрибутов HTML-дескриптора, а команды, предназначенные для обработки события, выступают в роли значения этого атрибута. В данном случае обработка события производится в теле функции handleFocus(). В принципе, обработчиком может быть не только функция, но и любая последовательность команд JavaScript в виде составного оператора.

Следующий пример демонстрирует обработку события, связанного с наведением курсора мыши на гиперссылку:

<a href = "http://www.myhp.edu"

onmouseover="alert('An onMouseOver event'); return false">

<img src="my.gif" width="50" height="50">

</a>

Ниже приводится полный текст HTML документа c JavaScript сценарием, в котором обрабатывается событие нажатия кнопки мыши, и определяется, какая именно из них была нажата:

<html>

<head>

<script language = "javascript">

function whichButton(event)

{

if (event.button == 2)

{

alert("Вы щелкнули правой кнопкой мыши!");

}

else

{

alert("Вы щелкнули левой кнопкой мыши!");

}

}

</script>

</head>

<body onmousedown="whichButton(event)">

<p>Щелкните любой кнопкой мыши в любом месте документа</p>

</body>

</html>

Соседние файлы в папке лабораторная работа 5 (html, css, js)