- •Информационные технологии
- •Представление работ
- •Введение
- •Раздел 1. Создание структуры и представления web-документа
- •Тема 1. Язык разметки web-страницы
- •Роль html
- •Немного истории
- •Особенности html5
- •Что нужно знать об html5
- •Элементы языка html
- •Текстовые элементы html
- •Стилевые элементы
- •Теги, определяющие разделы документа
- •Интерактивные элементы
- •Вставляемый контент
- •Добавление видео и звука
- •Спецсимволы
- •Создание гиперссылок
- •Организация ссылок на область документа
- •Элементы таблиц
- •Группы строк
- •Столбцы и группы столбцов
- •Текстовое поле
- •Поле пароля
- •Скрытое поле
- •Переключатели или радиокнопки
- •Выбор файла
- •Выбор цвета
- •Календарь и время
- •Поля с проверкой
- •Ползунок
- •Поле для ввода номера телефона
- •Поле поиска
- •Атрибуты элемента input
- •Многострочные текстовые поля
- •Создание выпадающего списка при помощи select
- •Надписи
- •Группа элементов
- •Атрибуты accesskey и tabindex
- •Генерация ключей для формы
- •Мера в пределах диапазона
- •Область вывода результатов вычислений
- •Индикатор выполнения
- •Пример использования тегов форматирования
- •Как сделать хороший html – документ
- •Тема 2. Каскадные таблицы стилей и новое в css3
- •Стили css
- •Новое в css3
- •Преимущества css
- •Задание стиля
- •Способы добавления таблиц стилей на Web-страницы
- •Наследование
- •Контекстные селекторы
- •Использование классов
- •.Имя класса {свойство: значение;}
- •Селектор id
- •Группировка
- •Псевдоклассы
- •Другие псевдоклассы
- •Селекторы атрибутов
- •Вычисление специфичности (приоритета) селекторов
- •Единицы измерения, используемые в каскадных таблицах стилей
- •Способы задания цвета
- •Тема 3. Свойства сss
- •Цвета и фоны
- •Объединение свойств фона
- •Использование градиентов
- •Указание угла наклона градиентной линии, который показывает направление градиента. Вначале пишется положительное или отрицательное значение угла, затем к нему слитно добавляется deg:
- •Блоковая модель
- •Размещение элементов на странице
- •Работа со шрифтами
- •Работа с текстом
- •Тема 4. Проектирование web-приложений
- •Сбор требований (брифинг)
- •Прототипирование сайта(разработка макета)
- •Зачем нужны прототипы
- •Данные, лежащие в основе прототипа
- •Виды прототипов
- •2) Мокапы (статичные макеты)
- •Разработка макета сайта с использованием сервиса draw.Io на примере макета сайта для дорожной клинической больницы
- •Задание 1
- •Задание 2
- •Задание 3
- •Задание 4
- •Задание 5
- •Задание 6
- •Задание 7
- •Раздел 2. Создание уровня поведения web-документа Тема 1. Основы Java Script Основные сведения о языке
- •Добавление JavaScript кода в html документы
- •Методы для ввода и вывода данных
- •Типы данных и значения
- •Операторы языка
- •Функции в JavaScript
- •Инструкции в Java Script
- •If (условие)
- •If (первое_условие) {
- •If (условие_2){ инструкции условного оператора;
- •Объекты
- •Объект String
- •Массивы
- •Объект Date
- •Объект Math
- •Таймеры
- •If (confirm("Остановить выполнение ?"))
- •Тема 2. Объектная модель документа
- •Построение дерева dom
- •Отображение дерева dom в различных браузерах
- •Объекты, методы и свойства
- •Объект Document
- •Свойства объекта document
- •Методы объекта document
- •Работа с Cookie
- •Методы и свойства dom
- •Метод getElementById(id)
- •Свойство innerHtml
- •Изменение свойств css объекта dom
- •Создание сценариев
- •Тема 3. Использование jQuery и Ajax
- •Начало работы с jQuery
- •Порядок локальной установки jQuery
- •Подключение библиотеки jQuery из сети cdn
- •Подключение с использованием менеджера пакетов bower.Io
- •Установка Bower
- •Работа с функциями jQuery
- •Поиск элементов с использованием jQuery
- •Поиск элементов по атрибутам
- •Фильтрация элементов
- •Выбор нечетных элементов
- •Выбор элемента по индексу. Метод eq()
- •Выделение невидимых элементов
- •Фильтры элементов форм
- •События в jQuery
- •Объект event
- •Определение типа события
- •Время запуска события
- •Обработчики событий jQuery
- •Обработчики событий jQuery в действии
- •Управление обработчиками событий
- •События документа/окна
- •События форм
- •Работа с деревом dom
- •Добавление новых элементов
- •Удаление элементов
- •Методы для работы с css
- •Визуальные эффекты jQuery
- •Методы hide() и show()
- •Набор методов семейства slide
- •Метод animate()
- •Навигация по дереву dom
- •Метод children()
- •Метод closest()
- •Метод parents()
- •Методы для работы с элементами-близнецами
- •Метод siblings()
- •Метод next()
- •Подключение jQuery ui
- •Методы взаимодействия
- •Перетаскиваемые элементы
- •Области для перетаскиваемых элементов
- •Растягиваемые элементы
- •Выделяемые элементы
- •Сортируемые элементы
- •Виджеты jQuery ui
- •Виджет accordion
- •Виджет autocomplete
- •Виджет datepicker
- •Оформление кнопок
- •Виджет tabs
- •Диалоговые окна
- •Виджет progressbar
- •Виджет slider
- •Практические задания
- •Этапы выполнения ajax запроса
- •Создание экземпляра объекта xmlHttpRequest
- •Свойства объекта xmlHttpRequest
- •Отправка запроса на сервер
- •Метод send()
- •Что выбрать: метод get или метод post?
- •Определение состояния готовности сервера
- •Событие onreadystatechange
- •Принятие ответа сервера
- •Свойство responseText
- •Свойство responseXml
- •Формат json
- •Что выбрать: json или xml?
- •Написание ajax запросов с помощью jQuery
- •Сопровождающие функции
- •Метод .AjaxSend()
- •Метод ajaxComplete()
- •Методы ajaxSuccess и ajaxError
- •Пример создания всплывающих подсказок с использованием технологии ajax
- •Библиотека Prototype
Метод ajaxComplete()
Метод ajaxComplete выполнит переданный код после выполнения AJAX-запроса, независимо от того, выполнится запрос с ошибкой или нет.
Методы ajaxSuccess и ajaxError
Метод ajaxSuccess выполнит переданный в него код, если выполнение AJAX запроса будет завершено успешно.
Метод ajaxError выполнит переданный в него код, если выполнение AJAX запроса будет завершено с ошибкой.
Пример создания всплывающих подсказок с использованием технологии ajax
В практической web-разработке одной из самых распространенных задач является задача по организации системы подсказок на сайте. Система подсказок представляет собой аналог живого поиска, разработанного компанией Google.
Подсказки работают следующим образом: каждый введенный пользователем символ сравнивается с содержимым базы поиска и, если будут найдены совпадения, они будут выведены на экран. Выбрав нужное совпадение из списка, пользователь может произвести поиск необходимого совпадения без необходимости дописывать запрос до конца.
Работа с базой данных будет осуществляться с использованием серверного языка программирования php. Подробнее язык php будет рассмотрен позднее в данном учебном пособии. Последовательность действий:
1) создадим экземпляр объекта XMLHttpRequest();
2) отправим запрос с введенным пользователем словом или символом методом GET;
3) выведем результат запроса в блок с идентификатором #res. До тех пор, пока пользователь не начал вводить символы, мы не видим блок с идентификатором #res.
Хотя создание кода с использованием языка php не является предметом изучения в данном разделе, приведем текст файла suggest.php, в котором происходит выборка и обработка данных, отправляемых в формате json и отображаемых в блоке с идентификатором #res:
Библиотека Prototype
Одной из наиболее известных и самых используемых Ajax-библиотек является Prototype. Библиотека Prototype – это независимый проект группы разработчиков с изначально открытым исходным кодом. Библиотека очень быстро подгружается, формируя ядро для построения других библиотек, например, script.aculo.us и Rico.
Prototype — это набор объектов, которые помогают преодолеть некоторые трудности доступа и работы с элементами страницы в различных браузерах. Библиотека Prototype была создана и до сих пор поддерживается Сэмом Стефенсоном (Sam Stephenson), последнюю версию (на момент написания учебного пособия) можно скачать с http://prototypejs.org. На сайте также содержится документация по API библиотеки, а также статьи и учебные пособия по ее эффективному использованию.
Для того, чтобы начать работать с библиотекой Prototype, ее необходимо подключить к страницк уже знакомым нам способом, используя тег script:
Одной из основных особенностей Prototype является наличие нескольких схожих с языком Ruby функций и свойств. Ruby — простой в использовании язык, но в то же время сложный для восприятия, и использование библиотекой Prototype этих функций в JavaScript может вызвать путаницу, особенно если не знать специфических компонентов Prototype.
Ключевыми среди этих компонентов являются функции "доллар" и "доллар F". Функция $() ("доллар"), выдает ссылку на элемент, имя которого передано в функцию:
Элемент идентифицируется с помощью атрибута id:
Это эквивалентно использованию вызова метода DOM:
Помимо возвращения элемента, функция $() также присоединяет несколько специфических свойств Prototype.
Функция $F() возвращает значение поля формы, заданного идентификатором:
Это эквивалентно следующему:
Prototype не столько предоставляет новую функциональность, сколько заново компонует самые необходимые функции в легкодоступные модули.
Другой ключевой компонент Prototype — это объект Enumerable, который добавляет интерактивные возможности для JavaScript.
Создание совокупностей данных, таких, как массивы, всегда было чем-то примитивным в JavaScript, по крайней мере, по сравнению с другими языками. Это также подверглось изменению в новых версиях JavaScript: скажем, в JavaScript 1.6 были добавлены forEach и filter, а в JavaScript 1.7 — итеративность. Однако до тех пор, пока подобные изменения не будут поддерживаться большинством браузеров, использование объекта Enumerable библиотеки Prototype сможет во многом их заменить.
Prototype также предоставляет объекты для управления запросами XMLHttpRequest. Они просты в использовании и упрощают код запроса к веб-сервисам. Основным объектом Ajax является объект со сходным названием Ajax, но большая часть работы выполняется объектом Ajax.Request.
Формирования запроса с помощью этого объекта выглядит следующим образом:
Первый параметр — это URL-адрес запроса к веб-сервису, а второй параметр состоит из объекта, в котором указан метод HTTP-запроса, параметров запроса и функции, вызываемой по окончании запроса.
Ответ запроса XMLHttpRequest заключен в Prototype; и вы не сможете перехватывать различные этапы запроса. Для того, чтобы обработать каждый этап, контролируются события onComplete, onLoading, onLoaded и onInteractive. Однако, для большинства приложений понадобится отслеживать только события onComplete и onSuccess, которые появляются в случае успешного выполнения запроса.
Prototype также предоставляет возможность эмулировать методы HTTP-запроса DELETE и PUT, используя для этого альтернативный POST —подход.
Библиотека также располагает возможностью автоматически анализировать возвращенные данные. Если данные представлены в формате HTML, метод Ajax.Updater может обработать ответ и вставить данные в указанный элемент. Если данные помечены как JSON, Prototype может автоматически их проанализировать и передать как объект в функцию обратного вызова.
Подведем итоги:
В данном разделе мы рассмотрели способы добавления уровня поведений на web-страницу. Узнали синтаксис и основные конструкции языка программирования на стороне браузера JavaScript, ознакомились с объектами языка, свойствами и методами объктов и вариантами их использования для создания интерактивности на веб-странице.
Кроме того, получили представление об объектной модели документа DOM, основных видах DOM, ознакомились с методами и свойствами доступа к объектам HTML через узлы дерева DOM и вариантами их использования в сценариях.
Рассмотрели технологию AJAX, выяснили, какие технологии входят в состав AJAX, познакомились с понятием синхронного и асинхронного запроса. Подробно рассмотрели объект JavaScript XMLHttpRequest(), прошли полный путь от формирования запроса до отображения результатов запроса на странице.
Проверь себя:
Назовите способы ввода-вывода данных в JavaScript.
Какие операторы для организации циклов имеются в JavaScript?
Назовите объекты языка, перечислите из свойства и методы.
Что такое DOM?
В чем разница между CORE DOM, HTML DOM и XML DOM?
Сколько существует уровней DOM?
Сколько групп свойств и методов DOM выделяют разработчики?
Назовите самый популярный метод доступа к объекту DOM
Что такое узлы-элементы и текстовые узлы в DOM?
Является ли DOCTYPE объектом DOM?
Что такое AJAX?
Что такое асинхронный запрос?
Что такое XML?
Что такое JSON?
В чем отличие между форматами JSON и XML?
Назовите основные преимущества использования AJAX.
Задания для самостоятельной работы
JavaScript и DOM:
1. Ввести с экрана два числа, сложить их, результат вывести в окно документа.
2. Ввести с экрана значение градусов по Фаренгейту, перевести их в градусы по Цельсию по формуле:
0C=5/9(0F-32)
Оформить результат с помощью таблиц стилей.
3. Ввести с экрана значение градусов по Фаренгейту, перевести их в градусы по Цельсию по формуле:
0C=5/9(0F-32)
Указать в зависимости от получившегося значения, в каком состояии находится вода: лед, холодная вода, теплая вода, горячая вода, пар.
Выполнить решение с помощью условного оператора и оператора выбора.
4. Укажите название месяца в зависимости от его номера в году.
5
.
Вывести в окно документа таблицу
соответствия градусов по Цельсию
градусам по Фаренгейту в пределах от
-250 до 300 с шагом 10. Пример можно увидеть
на рисунке 74. Можно также предусмотреть
вариант, когда пределы и шаг вводится
пользователем с экрана.
Замечание. Вспомните, что в операторе document.write внутри кавычек можно указывать теги HTML.
В получившейся таблице создать фон строк разных цветов: четная строка желтая, нечетная строка красная. Подумайте, как создать три повторяющихся цвета, четыре и т.д.
Замечание. Можно использовать операцию деления по модулю (%).
В
ведите
с экрана число, например, 5. Выведите на
экран пять строчек, в каждой строке по
пять символов.Введите с экрана число, например, 5. Выведите на экран пять строчек, в первой строке одна звездочка, во второй – две, и так далее. В последней - пять звездочек.
Введите с экрана число, например, 5. Выведите на экран пять строчек, в первой строке четыре пробела и одна звездочка, во второй – три пробела и две звездочки и т.д. В последней - пять звездочек.
Введите с экрана число, например, 5. Выведите на экран пять блоков, в первом блоке одна звездочка; во втором – одна, три; в третьем – одна, три, пять и т.д. (см. рис. 75).
Создать в одной функции часы в окне документа в 24-часовом формате, а также вывести текущую дату, указав название месяца на русском языке.
Определить, сколько дней осталось до нового учебного года.
Напишите код, подсчитывающий сумму элементов массива. Массив введите с экрана, запросив предварительно размерность этого массива. Сумма элементов массива должна вычисляться с помощью функции.
Написать функцию, возвращающую максимальное по модулю число в массиве. Если это число отрицательное, не потеряйте знак!
Напишите функцию для решения квадратного уравнения. Обратите внимание, что для того, чтобы функция возвращала несколько значений (2 корня), их следует записывать в массив.
Доработайте слайд-шоу из примера со страницы 176, добавив кнопку play/stop, при нажатии на которую слайд-шоу либо останавливается, либо воспроизводится. Можно вместо одной кнопки можно создать две отдельные: play и stop.
Нарисуйте дерево DOM для следующего документа
<!DOCTYPE html>
<html>
<head>
<title>Главная Страница</title>
</head>
<body>
<p id="id_p_1">Нумерованный список</p>
<ol>
<li> Пункт 1 </li>
</ol>
<p class="p_1">Параграф1</p>
<p class="p_2">Параграф2</p>
<p>Параграф1</p>
<div id="for_div1"> Измените этот текст! </div>
<div id="for_div2"> <em>Измените цвет текста!</em> </div>
</body>
</html>
Измените текст внутри блока for_div1.
Измените цвет текста внутри блока for_div2.
Измените текст и свойства параграфов p_1, p_2.
AJAX и jQuery:
Задание 1
Создайте четыре кнопки и напишите для них код, запрашивающий с помощью AJAX файлы winter.txt, summer.txt, autumn.txt, spring.txt с сервера и отображающий результат на странице.
Задание 2
Скрипт file1.php принимает три аргумента var1, var2, var3 (значения могут быть в диапазоне от 1 до 5). Создайте AJAX запрос для обращения к этому скрипту и подберите такие значения аргументов var1, var2 и var3, чтобы результат выполнения скрипта был равен 8.
Задание 3
Скрипт file2.php принимает три аргумента a, b, c (значения могут быть в диапазоне от 5 до 10). Создайте AJAX запрос для обращения к этому скрипту и подберите такие значения аргументов a, b и c, чтобы результат выполнения скрипта был равен 130.
Задание 4
Запросите файл test.xml из скрипта, примите ответ с помощью responseXML и затем:
выведите содержимое 3 и 4 тэга name на страницу;
выведите содержимое 2 и 3 тэга surname на страницу;
выведите содержимое 1 тэга dept на страницу;
выведите содержимое всех тэгов surname, которые присутствуют в файле на страницу.
Задание 5
Реализуйте подпункты, перечисленные ниже, путем добавления на страницу соответствующего jQuery кода:
Создайте AJAX запросы, которые должны после нажатия на соответствующие кнопки обращаться к файлам autumn.txt, winter.txt, summer.txt, и spring.txt, и затем отображать результат запроса в абзац с id=par1.
После нажатия на кнопку с id=but5 элемент span c id=let1 должен содержать первую букву кодового слова, span c id=let2 вторую и т.д.
Задание 6*
Разработайте систему подсказок при введении пользователем города проживания.
