
- •Лабораторная работа № 16 «JavaScript: Web-формы и элементы управления. Свободно позиционируемые элементы Web-страницы
- •Создание Web-форм
- •Создание элементов управления
- •Поле ввода
- •Поле ввода пароля
- •Поле ввода значения для поиска
- •Область редактирования
- •Переключатель
- •Список, обычный или раскрывающийся
- •Надпись
- •Прочие элементы управления
- •Специальные селекторы css, предназначенные для работы с элементами управления
- •Свойства и методы объекта htmlElement, применяемые для работы с элементами управления
- •Свойства и методы объекта Element, применяемые для работы с элементами управления
- •События элементов управления
- •Реализация поиска на Web-сайте
- •Подготовка базы данных
- •Создание Web-формы
- •Написание Web-сценария, выполняющего поиск
- •Понятие свободно позиционируемого элемента Web-страницы
- •Создание свободно позиционируемых элементов
- •Средства библиотеки Ext Core для управления свободно позиционируемыми элементами
- •Реализация усовершенствованного поиска
- •Создание контейнера с Web-формой поиска
- •Написание Web-сценария, выполняющего поиск
Web-технологии – 16
Лабораторная работа № 16 «JavaScript: Web-формы и элементы управления. Свободно позиционируемые элементы Web-страницы
А. Web-формы и элементы управления
Web-формы и элементы управления HTML: понятие, назначение. Серверные приложения.
Язык HTML предоставляет набор тегов для создания разнообразных элементов управления. Эти элементы управления уже "умеют" откликаться на действия посетителя: поля ввода — принимать введенные символы, флажки — устанавливаться и сбрасываться, переключатели — переключаться, списки — прокручиваться, выделять пункты, разворачиваться и сворачиваться, а кнопки — нажиматься.
Набор элементов управления, поддерживаемый HTML, невелик. Он включает поля ввода различного назначения, область редактирования, обычный и раскрывающийся список, флажок, переключатель, обычную и графическую кнопку. Более сложные элементы управления (таблицы, "блокноты" с вкладками, панели инструментов и пр.) создать значительно сложнее. Хотя, как правило, для создания простых Web-приложений перечисленного ограниченного набора вполне достаточно.
Существуют JavaScript-библиотеки для создания сложных элементов управления: индикаторов прогресса, регуляторов, "блокнотов", таблиц, панелей инструментов, меню и даже "лент" в стиле Microsoft Office 2007/2010 и "окон". К таким библиотекам можно отнести, в частности, Ext, основанную на знакомой нам Ext Core.
Стандарт HTML требует, чтобы все элементы управления находились внутри Web-формы. Web-форма — это особый элемент Web-страницы, служащий "вместилищем" для элементов управления. На Web-странице она никак не отображается (если, конечно, мы не зададим для нее какого-либо представления); в этом Web-форма схожа с блочным контейнером. Для создания Web-формы HTML предусматривает особый тег.
Стандарт HTML требует, чтобы каждый элемент управления имел уникальное в пределах Web-формы имя. Это нужно для успешного формирования пар данных перед отправкой их серверному приложению.
Стандарт HTML поддерживал Web-формы и элементы управления еще до появления Web-сценариев и языка JavaScript.
Существует множество Web-сайтов, которые позволяют посетителю ввести какие-либо данные и получить результат их обработки: поисковые машины, почтовые Web-сервисы, интернет-магазины, интернет-опросники, социальные сети и пр.
Функциональность таких Web-сайтов реализуется с помощью особых программ, которые работают на серверном компьютере совместно с Web-сервером, — серверных приложений. Именно они обрабатывают полученные от посетителя Web-сайта данные и выдают результат в виде обычной Web-страницы. Именно для них в HTML предусмотрена возможность создания Web-форм и элементов управления — чтобы посетитель мог ввести данные, которые потом обработает серверное приложение.
Основная схема работы серверного приложения:
Посетитель вводит в элементы управления, расположенные в Web-форме на Web-странице, нужные данные.
Введя данные, посетитель нажимает расположенную в той же Web-форме особую кнопку — кнопку отправки данных.
Web-форма кодирует введенные в нее данные и отправляет их серверному приложению, расположенному по указанному интернет-адресу.
Web-сервер перехватывает отправленные данные, запускает серверное приложение и передает данные ему.
Серверное приложение обрабатывает полученные данные.
Серверное приложение формирует Web-страницу с результатами обработки данных посетителя и передает ее Web-серверу.
Web-сервер получает сформированную серверным приложением Web-страницу и отправляет ее посетителю.
Для того чтобы успешно подготовить введенные посетителем данные и отправить их серверному приложению, Web-форма должна "знать" значения трех параметров:
Интернет-адрес серверного приложения. Это обычный интернет-адрес, указывающий на файл серверного приложения, вида http://www.somesite.ru/apps/app.exe.
Метод отправки данных, указывающий вид, в котором данные будут отправлены. Таких методов HTML поддерживает два.
Метод GET формирует из введенных посетителем данных набор пар вида
<имя элемента управления>=<введенные в него данные>
Ранее уже говорилось, что каждый элемент управления обязательно должен иметь уникальное в пределах Web-формы имя. Эти пары добавляются справа к интернет-адресу серверного приложения, отделяясь от него символом ? (вопросительный знак); сами пары разделяются символами & (амперсанд). Полученный таким образом интернет-адрес отправляется Web-серверу, который извлекает из него интернет-адрес серверного приложения и сами данные.
Метод POST также формирует из введенных данных пары вида
<имя элемента управления>=<введенные в него данные>.
Но отправляет он их не в составе интернет-адреса, а вслед за ним, в качестве дополнительных данных.
Метод кодирования данных. Он актуален только при отправке данных методом POST; для метода GET его можно не указывать.
Все это имеет смысл только в том случае, если мы создаем Web-форму для отправки данных серверному приложению. Здесь мы не будем подробно рассматривать кодирование и пересылку данных. Эти сведения можно найти в любой книге по HTML, от версии к версии этого языка они практически не меняются.
Далее мы будем рассматривать только те возможности Web-форм и элементов управления, которые полезны исключительно при клиентском Web-программировании. Возможности, необходимые для взаимодействия с серверными приложениями, мы опустим.