
- •Минск, бгу,
- •Содержание.
- •Глава1. Компьютерные сети и протоколы…………………………..15
- •Введение в Интернет Коротко об истории Интернет
- •Как работает Интернет?
- •Система адресации
- •Способы подключения к сети
- •Сервисы Интернет
- •Электронная почта
- •Передача файлов по ftp
- •Всемирная паутина www
- •Задания по теме “Введение в Интернет”
- •Глава 1. Компьютерные сети и протоколы
- •Локальные сети
- •Распределенные и глобальные сети
- •Сеть vpn
- •Адресация в локальных сетях
- •Адресация в глобальных сетях и в Интернет
- •Понятие и краткое описание протоколов
- •Соотношение между tcp/ip и osi/iso
- •Межсетевой протокол iPv4
- •Транспортный протокол tcp
- •Протокол дэйтаграмм udp
- •Протоколы arp и rarp
- •Протоколы сетевого уровня
- •Протоколы электронной почты
- •Протоколы smtp и pop3
- •Протокол imap4
- •Спецификация mime
- •Протокол ftp
- •Http – Протокол передачи гипертекстов
- •Клиентский запрос http
- •Ответ сервера
- •Развитие прикладных протоколов: soap, rest, rpc
- •Безопасность в сети
- •Протокол ssl
- •Установление подлинности участников
- •Проблемы с кодировкой и Unicode
- •Задания по теме «Протоколы Интернет»
- •Глава 2. Проектирование и разработка сайтов
- •Виды сайтов
- •Этапы проектирования и разработки сайта
- •Модели проектирования и управление проектами
- •Итерационная (спиральная) модель
- •Программные средства управления проектами
- •Логическое проектирование дизайна сайта
- •Главная страница сайта
- •Внутренние страницы сайта
- •Оценки качества Веб – сайтов
- •Глава 3. Краткий обзор основных технологий разработки Веб приложений
- •Язык разметки гипертекста xml
- •Синтаксис xml
- •Объявление xml
- •Конструкции языка
- •Правильно построенные и действительные документы xml
- •Отображение xml документа
- •Словари xml
- •Вставка флэш в страницу
- •Язык ActionScript
- •Видео-аудио проигрыватели
- •Технология «клиент-сервер»
- •Язык Java на клиентской и серверной странице
- •Базы данных и язык sql
- •Нормализация модели данных
- •Язык sql
- •Команды определения структуры данных
- •Команды манипулирования данными
- •Команды управления транзакциями
- •Команды управления доступом
- •Извлечение данных, команда select
- •Секция where
- •Групповые функции
- •Секция having
- •Изменение данных
- •Команда insert
- •Язык разметки гипертекста html
- •Формы html
- •Новые элементы форм html5
- •Новый тип input – range служит для ввода значения из диапазона
- •Теги div и span
- •Метатеги
- •Новые возможности html5
- •Поддержка аудио
- •Поддержка видео
- •Атрибут Controls
- •Валидация документов
- •Каскадные таблицы стилей css
- •Способы включения каскадных таблиц стилей
- •Теги div , span и link
- •Свойства шрифтов (фонтов).
- •Заголовок1 Заголовок2 Заголовок3
- •Стили текста.
- •Цвет и фон.
- •Свойства списков
- •Свойства таблиц
- •Псевдоклассы
- •Псевдостили текста
- •Псевдоэлементы
- •Форматирование псевдоклассов и псевдоэлементов
- •Различные свойства
- •Представление документа в виде блоков
- •Отступы, поля, позиционирование
- •Границы элементов
- •Визуальное форматирование
- •Визуальные эффекты
- •Новое в css3
- •Глава 5. Язык JavaScript Введение
- •Включение скриптов JavaScript в html-код
- •Создание простых сценариев
- •Комментарии. Скрытие сценариев от браузеров
- •Отладка скриптов. Ввод и вывод данных
- •Описание языка Типы данных
- •Преобразование типа
- •Булев тип
- •Переменные типа Undefined и Null
- •Массивы
- •Операторы и выражения
- •Оператор присваивания
- •Арифметические операторы
- •Операторы сравнения
- •Функции пользователя
- •Передача параметров по значению и по ссылке
- •Глобальные и локальные переменные
- •Модель событий
- •Ключевое слово this
- •Перехват события.
- •Методы addEventListener, removeEventListener, attachEvent.
- •Исключения: throw/catch/finally
- •Объектная модель
- •Пользовательские объекты
- •Прототипы
- •Встроенные объекты String, Array, Date, Math Объект String
- •Объект Array
- •Объект Date (Дата)
- •Методы объекта Date
- •Коллекции
- •Свойства элемента innerHtml и outerHtml
- •Навигация по дереву документа
- •Создание новых узлов
- •Удаление и замена узлов в документе
- •Объект window
- •Свойства окна, передаваемые методу open()
- •Методы объекта window
- •Свойства и методы объекта navigator
- •Свойства и методы объекта history
- •Свойства и методы объекта location
- •Объект layer
- •Свойства объекта layer
- •Методы объекта layer
- •Использование каскадных таблиц стилей и объекта style
- •Модель ajax:
- •Класс xmlHttpRequest
- •Свойства класса
- •Методы класса
- •Создание экземпляра объекта
- •Использование dom
- •Объект FormData
- •Работа с cookie
- •Синтаксис http заголовка для поля Cookie
- •Способы задания значений cookie
- •Примеры на JavaScript
- •Глава 6. Язык серверных скриптов php
- •Инструменты для разработки
- •Как php работает
- •Описание языка Типы данных
- •Массивы и инициализация массивов
- •Операции и выражения
- •Операции сравнения
- •Логические операции
- •Строковые операции
- •Операторы управления
- •Функции
- •Рекурсивные функции
- •Аргументы функции
- •Область действия и время жизни переменных
- •Изменяемые (динамические) переменные
- •Внешние библиотечные функции
- •Функции для работы с массивами
- •Функции для работы со строками.
- •Функции форматных преобразований строк
- •Преобразование строк и файлов к формату html и наоборот
- •Преобразование html в простой текст
- •Преобразование строки к верхнему и нижнему регистру
- •Установка локальных настроек
- •Регулярные выражения
- •Perl-совместимые функции для работы с регулярными выражениями
- •Функции даты и времени
- •Математические функции
- •Объектно-ориентированное программирование в php Основные понятия ооп
- •Классы и Объекты
- •Конструкторы и деструкторы
- •Наследование классов и интерфейсов
- •Магические методы
- •Обработка ошибок
- •Ошибки php и журнал error_reporting
- •Чтение и запись бинарных файлов
- •Работа с каталогами в рнр
- •MySql – сервер: бд1; бд2; бд3; бд4;
- •Язык запросов sql
- •Операция соединения.
- •Команды sql для создания баз данных и таблиц
- •Выборка данных из таблиц бд
- •Работа с MySql (сохранение данных в базе данных).
- •Работа с MySql занесение и получение данных из базы данных
- •Организации работы с данными
- •Передача данных от клиента к серверу и обратно. Протокол http
- •Клиентские методы http
- •Обработка html-форм
- •Передача переменных из формы в скрипт.
- •Передача значений переменных по методу get
- •Передача данных из формы на сервер по методу get
- •Передача данных из формы на сервер по методу post
- •Php и различные формы
- •Обработка форм
- •Более сложные переменные формы
- •Глава 7. Лабораторные работы Лабораторная работа 1 (4 часа). Инструменты и средства создания простых сайтов
- •Лабораторная работа 3 (4часа). Применение каскадных таблиц стилей css
- •Трехколоночный контейнерный макет сайта
- •Лабораторная работа 4. Применение каскадных таблиц стилей css
- •Некоторые подсказки по синтаксису css:
- •1. Свойства шрифтов.
- •2. Свойства текста.
- •3. Свойства цвета и фона.
- •4. Свойства рамки.
- •5. Свойства списков.
- •6. Свойства изображений.
- •Форматирование блока
- •Лабораторная работа 5 (4 часа). Динамика и JavaScript на Веб –странице.
- •Ответить на следующие вопросы
- •Пример вывода даты и времени.
- •Пример вывода строки в стиле печатной машинки
- •Дополнительные задачи и упражнения по JavaScript
- •Лабораторная работа 6 по JavaScript (4 часа).
- •Проверка правильности заполнения формы на сайте
- •Методы объекта window
- •Методы focus() и blur()
- •Лабораторная работа 7. Php Задание 1. Массивы и строки Выполнить одно из перечисленных ниже упражнений
- •Задание 2. Функции
- •Задание 4. Работа с базами данных Выполнить одно из перечисленных ниже упражнений
- •Задание 5. Создание web-объектов Список заданий
- •Приложение 1. Курсовые работы Курсовая работа 1. Создание клиентских приложений
- •Курсовая работа №2. Сайты клиент-сервер
- •Каталог товаров
- •Система вопрос/ответ
- •Курсовая работа №3. Технологии разработки Веб – приложений Проекты сайтов
- •Перечень заданий
- •Приложение 2. Быстрая разработка Веб-приложений и cms
- •Начало работы с сайтом
- •Установка нового модуля
- •Создание шаблона
- •Создание индивидуальных шаблонов
- •Движок шаблонирования xTemplate
- •Создание нового шаблона
- •Удаление блока с формой входа на сайт
- •Включение блока для отображение популярных статей
- •Удаление ссылки "Далее" в отображение статьи
- •Drupal: практические примеры
- •Как заставить Drupal работать быстрее
- •Литература
Объект Date (Дата)
Объект Date предоставляет набор методов для работы с датой и временем. Текущее время в объекте Date берется из операционной системы. Дата и время хранятся в виде числа, показывающее количество миллисекунд с 1 января 1970 года. Нумерация дней недели начинается с нуля, нулю соответствует воскресенье.
Экземпляр объекта Date объявляется следующим образом:
имяОбъекта = new Date([год, месяц, число, часы, минуты, секунды, миллисекунды])
Методы объекта Date
getFullYear(), getYear() – год (с 1970-..)
getMonth() – месяц(0-11), getDate() – число(1-31), getDay() – день недели (0-6)
getHours() – часы (0-23), getMinutes() – минуты (0-59), getSeconds() – секунды (0-59), getTime(), getMilliseconds() - миллисекунды
getUTCFullYear() – год UTC (1970- …), getUTCMonth() – месяц UTC
getUTCDate() – число UTC, getUTCDay() – день недели UTC
getUTCHours() – часы UTC, getUTCMinutes() – минуты UTC
getUTCSeconds() – секунды UTC, getUTCMilliseconds() – миллисекунды UTC
setYear(год), setFullYear(год) – установка года
setMonth(месяц) - установка месяца, setDate(число) - установка числа, setDay(день) - установка дня недели (от 0-6)
setHours(часы) - установка часов, setMinutes(число) - установка минут, setSeconds(число) - установка секунд
setMilliseconds(число), setTime(число) - установка миллисекунд
setUTCFullYear(число) – установка года UTC
setUTCMonth(число), setUTCDate(число), setUTCDay(число), setUTCHours(число),
setUTCMinutes(число), setUTCSeconds(число), setUTCMilliseconds(число)
getTimezoneOffset () – разница в минутах по отношению к UTC
toDateString() - Строка с датой (без времени) в формате браузера
toGMTString() - Строка с датой и временем в глобальном формате
toLocaleDateString() - Строка с датой без времени в локализованном формате
toString() - Строка с датой и временем в формате браузера
<!--пример pr19:часы.Использование методов объекта Date-->
<html> <head>
<title>Clock</title>
<script type="text/JavaScript">
function clockform()
{d=new Date();
time=d.getHours()+":"+d.getMinutes()+":"+d.getSeconds();
document.formcl.fclock.value=time;
setTimeout("clockform()",100); }
</script>
</head>
<body onLoad="clockform()">
<center>
<form name=formcl metod="get">
<input name=fclock maxlength=8 size=8>
</form> </center>
</body></html>
Объект Function
Функция в JavaScript также является объектом и создается следующим образом: name= new Function (arguments )
{тело функции}
Свойства:
arguments — массив значений параметров, переданных функции. Индексация элементов массива производится с 0. length — количество параметров, указанных в определении функции
caller — содержит ссылку на функцию, из которой была вызвана данная функция; если функция не вызывалась из другой функции, то значение свойства равно null
Методы :
toString() — возвращает определение функции в виде строки.
Объект RegExp и регулярные выражения
В JavaScript регулярные выражения представлены объектом RegExp. Свойства RegExp принимают значения литералов регулярных выражений, заключенных в скобки /…/. Регулярные выражения из нескольких символов в стиле Perl записываются в косых скобках. Рассмотрим простой пример: /stud/. Регулярное выражение ищет все строки, содержащие подстроку stud. Выражение /^stud/ означает, что stud должно находиться в начале слова (student), а /stud$/ - в конце (restud).
Символы могут объединяться в группы путем помещения в квадратные скобки. Квадратные скобки /[абв]/ означают “любой символ а,б,в из перечисленных в скобках”. Символ ^ в группе соответствует отрицанию, то есть указывает символы, не соответствующие шаблону. /[^абв]/ означает “любой символ отличный от а,б,в ” .
Для создания регулярных выражений могут быть использованы интервалы:
/[0-9]/ - совпадает с любой десятичной цифрой от 0 до 9;
/[a-z]/ - совпадает с любым символом нижнего регистра от а до z;
/[a-zA-Z0-9]/ - совпадает с любым символом или цифрой из набора Latin.
Конструкция [^a-zA-Z] совпадает с любым символом, не входящим в указанные интервалы (a-z и A-Z).
Специальные символы записываются с обратным слешем \ - признаком особой интерпретации следующего за ним символа:
\d - обозначает любую десятичную цифру;
\D - обозначает любой символ кроме десятичной цифры;
\w - алфавитно-цифровой символ /[a-zA-Z0-9_]/
\W - символ, не являющийся алфавитно-цифровым /[^a-zA-Z0-9_]/
\s - пробельный символ
\S - символ не являющийся пробельным
\n – Символ перехода на следующую строку. Строка\nЕще строка
\r – Символ возврата на начало строки. Текст\r
\t – Символ табуляции из нескольких пробелов. \tКрасная строка
\\ – Обратный слеш
\b забой, совпадает с границами слов: /sa\b/. Противоположный символ, \b, совпадает с чем угодно, кроме границы слова: /sa\b/.
Служебный символ . (точка) означает любой символ поэтому для поиска точки ее надо экранировать символом обратный слеш \. Шаблону соответствует знак точки в строке.
Символы +, *, ? и {...}, обозначающие количество повторений отдельного символа или конструкции, заключенной в квадратные скобки, называют квантификаторами. Принцип их действия проще всего пояснить на примерах:
[р]+ означает один или несколько символов р, стоящих подряд;
[р]* означает ноль и более символов р, стоящих подряд;
[р]? означает ноль или один символ р;
[р]{2} означает ровно два символа р, стоящих подряд;
[р]{2,3} означает от двух до трех символов р, стоящих подряд;
[р]{2,} означает два и более символов р, стоящих подряд.
Например, шаблон /stu+/ совпадает с последовательностью stu, за которой могут следовать один или несколько дополнительных символов u. Шаблон /st{2,4}/ совпадает с символом s, за которым следуют от 2 до 4 экземпляров символа t. /\w{3}\d?/ - три буквы и необязательная цифра. /\s+Java\s+/ - несколько пробелов до слова или после него. Выражение /[\d]+/ используется для поиска цифровой подстроки, выражение /([\d]+)000/ может использоваться при поиске денежных сумм.
Шаблон /<([\w]+)>/ совпадает с конструкциями, заключенными в угловые скобки, - например, тегами HTML.
Подстроки в регулярных выражениях можно группировать при помощи круглых скобок: /домен – (by|ru|uk|com)/ соответствует строке домен – by или другой.
Оператор | (или) проверяет совпадение одной из нескольких альтернатив. ( ) – Логическая группировка выражений, которая (может)+ повторяться.
В регулярных выражениях могут использоваться флаги. Флаг i указывает , что поиск по шаблону должен быть нечувствительным к регистру символов, а флаг g- поиск должен быть глобальным. Пример:
/\bJava\b/gi
Методы класса String, поддерживающие регулярные выражения:
search(рег_выраж ); возвращает позицию символа в первой найденной подстроке. Например “JavaScript”.search(/script/i) возвращает 4.
replace(рег_выраж, строка замены); - строка замены заменяет все строки с регулярным выражением если указан флаг g, иначе заменяется только первое найденное вхождение. Text.replace(/Javascript/gi,”JavaScript”). Метод match(рег_выраж) возвращает массив найденных по шаблону подстрок. Метод split(рег_выраж) – разбивает строку на массив строк.
Конструкция
/MSIE (5\.5|6).+Win/.test(navigator.userAgent)
читается так: "проверить, соответствует ли строка, содержащаяся в свойстве navigator.userAgent, следующиему шаблону: Строка MSIE, после которой стоит пробел, затем наборы символов "5.5" или "6", после которых один или более символов, за которыми следует набор символов "Win"".
Регулярные выражения - очень мощное средство, но не лишенное недостатков. И главный из них - производительность. Разбор, компиляция и поиск в тексте по шаблону значительно более затратная операция, нежели простой поиск на точное соответствие. Поэтому не стоит впадать в крайности и использовать регулярные выражения для точного поиска.
Document Object Model (DOM)
Объектная модель JavaScript предоставляет возможность работы с объектами, зависящими от браузера. Ниже представлена схема объектов, которая позволяет манипулировать свойствами и структурой документа.
Принятые в 2000-2001 годах стандарты объектной модели документа называются DOM Level 1 DOM Level 2, и DOM Level 3. Модель DOM основана на использовании объектов браузера document, а также navigator, window, images, forms и JavaScript.
Объект браузера window.document содержит отображение загруженного HTML-документа в виде дерева узлов (node). Тег<html> становится «корнем» дерева. Дочерними узлами <html> являются узлы <head> и <body>, у которых, в свою очередь, есть собственные дочерние узлы. Рассмотрим фрагмент документа:
<!-- пример pr27: -->
<HTML>
<HEAD>
<TITLE> Overview of the DOM </TITLE>
</HEAD>
<BODY>
<H1> Иерархия узлов </H1>
<P>
На вершине иерархии находится узел document, который представляет в DOM сам документ и узел HTML.
</P>
</BODY>
</HTML>
На следующей диаграмме показаны узлы этого документа.
Элемент <html>доступен как свойство объекта document. documentElement и имеет тип Element. Кроме типа Element имеются также типы для атрибутов и текста.
Свойство nodeName возвращает имя HTML тэга, которому соответствует данный узел. Для атрибутов nodeName возвращает название атрибута, а для тестовых узлов возвращает #text.
Свойство nodeType возвращает 1, 2 или 3 для узлов, соответствующих тегу, атрибуту или тексту, соответственно.
Свойство: nodeValue хранит содержание текстового узла. Для элементов оно возвращает null, а для атрибутов - значение атрибута.
<!DOCTYPE HTML SYSTEM>
<html><head>
<title>Dom</title>
<script>window.onload = function() { alert(document.body.childNodes.length) }//5
</script>
</head>
<body>
<script>
function go() {
alert(document.documentElement.nodeName+""+document.documentElement.
nodeType+""+ document.documentElement.nodeValueType)//1
alert(document.body.lastChild.nodeName+""+document.body.lastChild.nodeType+""+document.body.lastChild.nodeValue) //3
alert(document.documentElement);//[object HTMLHTMLElement]
alert(document.body);//[object HTMLBodyElement]
}
</script>
<input type="button" onclick="go()" value="Go"/>
</body> </html>