- •1. Основні технології розробки web-додатків
- •1.1 Протокол http
- •Основні технології розробки web-додатків
- •1.3 Короткі підсумки
- •2 Структура html-документа
- •2.1. Елементи мови html
- •2.2 Структура html-документа
- •2.2.1.Початок
- •2.2.2 Тіло документа
- •Заголовки
- •Нижче на малюнку показаний результат використання наступних заголовків:
- •Списки в html
- •2.3 Використання графіки в html
- •2.4 Таблиці
- •Атрибут border. Значення цього атрибута визначає як будуть виглядати рамки таблиці. Якщо атрибут не заданий або його значення дорівнює нулю, то таблиця не матиме рамок.
- •2.5 Html-форми Форми використовуються в www для передачі інформації від клієнта до сервера.
- •3 Каскадні таблиці стилів css
- •3.1 Загальні відомості про css
- •3.2 Додавання стилю на веб-сторінку
- •3.2.1. Таблиця пов'язаних стилів
- •3.2.2 Таблиця глобальних стилів
- •3.2.3 Внутрішні стилі
- •3.3 Синтаксис css
- •3.3.1 Властивості css
- •3.3.2 Селектори тегів
- •3.3.3 Селектори класів
- •3.3.4 Селектори-ідентифікатори
- •3.3.5 Контекстні селектори
- •3.3.6 Сусідні селектори
- •3.3.7 Дочірні селектори
- •Селектор зі значенням атрибута – встановлює стиль елемента в тому випадку, якщо задано певне значення зазначеного атрибута. Синтаксис застосування наступний.
- •Наприклад:
- •3.3.9 Універсальний селектор
- •3.4 Псевдокласи
- •3.4.2 Короткі підсумки
- •4 Типи і структури даних в javascript
- •Скрипт в html документі
- •4.2 Змінні та літерали
- •4.2.1 Літерали
- •4.3 Оператори JavaSscript
- •4.3.2 Оператор обробки рядків
- •4.3.3 Оператор typeof Аргументом оператора є змінна або вираз. Оператор повертає рядок, що описує тип аргументу(див. Табл. 4.4).
- •4.3.4 Умовний оператор (Оператор If)
- •4.3.5 Оператор перемикання (switch)
- •4.3.6 Оператори циклу
- •4.4 Масиви
- •Метод reverse () – застосовується для зміни на протилежний порядок елементів масиву всередині масиву. Припустимо, масив натуральних чисел впорядкований по зростанню:
- •Впорядкуємо його по спаданню:
- •4.5.2 Інструкція return
- •4.5.3 Виклик функції
- •4.6.2 Константи
- •4.6.3 Математичні функції.
- •4.6.4 Приклад. Генератор випадкових чисел
- •4.7 Контрольні питання
- •Події та обробники подій
- •5.1.1 Спливання подій в dhtml
- •5.1.2 Стандартні події dhtml.
- •Способи зв'язування подій
- •5.2.1 Введення подій в якості атрибутів.
- •5.2.2 Обробники подій як функції.
- •5.2.3 Динамічне зв'язування подій у сценарії.
- •5.2.5 Атрибути for і event.
- •Об'єкти браузера
- •Об'єктна модель браузера
- •Об'єкт window (Операції з вікнами)
- •Об'єкт navigator (властивості браузера)
- •Об'єкт location (Інформація про документ і вікна браузера)
- •Об'єкт history (Переходи між Web-сторінками )
- •Робота з діалоговими вікнами
- •Управління документом
- •Об'єктна модель документа
- •7.1.1 Сімейства, властивості і методи
- •Дерево документа (Document Tree)
- •Переміщення по Дереву Документа.
- •Динамічний вміст
- •8.1.1 Найбільш популярні моделі даних
- •9.3.1 Поділ інструкцій.
- •9.3.2 Коментарі.
- •9.3.3 Змінні, константи й оператори
- •9.3.6 Типи даних
- •Висновок
- •Керуючі конструкції рнр
- •Умовні оператори
- •// Ця програма надрукує всі парні цифри
- •{// Друкуємо цифру, якщо вона парна
- •Оператори передачі управління
- •Оператори включення
- •10.5 Висновок
- •Функції і масиви в php
- •Функції, визначені користувачем
- •11.1.1 Повернення значень функцією.
- •Рекурсивні функції.
- •11.1.3 Функції-змінні.
- •11.1.4 Побудова бібліотек функцій.
- •11.2.1 Операції з масивами.
- •11.2.2 Сортування масивів.
- •Sort_regular – порівнювати елементи масиву звичайним чином; sort_numeric – порівнювати елементи масиву як числа; sort_string – порівнювати елементи масиву як рядки.
- •11.2.3 Сортування масиву за ключами.
- •11.2.4 Сортування за допомогою функції, заданої користувачем.
- •Ми застосували нашу власну функцію сортування до всіх елементів масиву.
- •11.2.5 Застосування функції до всіх елементів массиву.
- •11.2.6 Виділення підмасива
- •Висновок
- •12 Строкові функції php
- •12.1 Функції пошуку в тексті (substr(), strpos(), strrpos(), strstr(), strchr(), stristr(), strrchr(), substr_count(), strspn(), strcspn())
- •12.2 Функції strlen(), chr() і ord()
- •12.3 Trim-функції (функції видалення символів відступу) trim (), ltrim (), rtrim (), chop ()
- •12.4 Функції форматного виведення. Специфікатори перетворення printf (), sprintf (), sscanf ().
- •12.5 Функції перетворення кодування
- •12.6 Функції роботи з бінарними даними pack () unpack ()
- •12.7 Функції роботи з блоками тексту (wordwrap (), str_replace (), substr_replace (), strtr (), stripslashes (), stripcslashes (), addslashes (), addcslashes (), quotemeta (), strrev ())
- •12.8 Функції об'єднання / поділу рядків (str_repeat (), str_pad (), chunk_split (), strtok (), explode (), implode (), join ())
- •12.9 Функции сравнения строк (strcmp(), strncmp(), strcasecmp(), strncasecmp(), strnatcmp(), strnatcasecmp(), similar_text(), levenshtein())
- •12.10 Функції роботи з url (parse_url (), parse_str (), rawurlencode (), rawurldecode (), base64_encode (), base64_decode ())
- •12.11 Функції перетворення регістру (strtolower (), strtoupper (), ucfirst (), ucwords ())
- •12.13 Функція htmlspecialchars
- •13 Робота з файлами
- •13.1 Відкриття і закриття файлів
- •13.2 Читання з файлів і запис у файли
- •13.2.1 Читання з файлів.
- •13.2.2 Запис в файли
- •13.5 Переміщення по файлам
- •13.6 Робота з каталогами
- •13.7 Завантаження файлу на сервер
- •14.1 Авторизація доступу
- •14.2 Механізм сесій
- •14.3 Налаштування сесій
- •14.4.1 Відкриття сесії
- •14.4.2 Створення сесії
- •14.4.3 Реєстрація змінних сесії
- •14.4.4 Видалення змінних сесії
- •14.5 Безпека
- •14.6 Висновок
- •15.1 Проектування
- •15.2 Система адміністрування контенту
- •15.2.1 Вимоги до системи адміністрування контенту (cms).
- •15.2.2 Адміністрування списку користувачів.
- •15.2.3 Вхід на сторінку адміністрування
- •15.2.4 Відкриття списку користувачів.
- •15.2.5 Редагування запису користувача.
- •15.2.6 Видалення користувача
Управління документом
Питання для вивчення
Об'єктна модель документа
Дерево документа
Динамічний вміст
Об'єктна модель документа
DOM (Document Object Model) – об'єктна модель документа – це подання документа (на мові розмітки у разі веб-технологій) у вигляді ієрархії структурних частин – вузлів.
Мета DOM – забезпечити можливість довільного програмного управління документом.
Модель DOM0. У цій моделі структуру об'єкта document можна зобразити у вигляді схеми (Рис. 7.1), з якої видно, що document містить ряд сімейств, властивостей і методів, - вони виділені в окремі стовпці.
На наведеному малюнку показані тільки два верхніх рівня ієрархії, в той час як структура продовжуеться і на більш низькі рівні. Так, в сімействі images [] може матитися декілька елементів-малюнків, а сімейство forms [] включає в себе дочірні об'єкти elements []. Маніпулювання різними компонентами Web-сторінок – це фактично маніпулювання елементами різних сімейств об'єкта document. Тому дуже важливо знати, як отримати доступ до потрібного елементу в ієрархічній структурі. Кожен об'єкт в ієрархічній структурі відноситься до того чи іншого сімейства. Усередині сімейства об'єкту присвоюється порядковий номер (індекс) і може бути присвоєно ім'я (ідентифікатор). Порядкові номери записуються так само, як номери елементів масиву, наприклад, images [0] (перший малюнок в документі) або frames [1] (другий фрейм). Нумерація елементів сімейств, як і нумерація в масивах JavaScript, починається з 0.
Щоб отримати доступ до об'єкта, потрібно вказати об'єкт верхнього рівня, тобто document, і потім через точку записати шлях по ієрархічній структурі до самого об'єкту, наприклад:
document.images [1]
document.forms [0].elements [2]
Тут elements [] позначає масив елементів форми forms [0]. Зрозуміло, що масив elements [] може мати й інше ім'я, вибране розробником. Більш того, замість звернення через порядковий номер елемента в масиві можна отримати доступ, використовуючи ідентифікатори елементів і масивів, наприклад, document.forms [0] .originalButton абоdocument.myForm.originalButton Використання ідентифікаторів зручно, коли ви маєте справу з великим документом. У цьому випадку посилання на елементи за допомогою індексів масивів можуть заплутати розробника.
Рисунок 7.1 – Об'єктна модель документа DOM0
7.1.1 Сімейства, властивості і методи
Сімейства об'єкта document безпосередньо пов'язані з елементами документа. Так, сімейство all включає в себе всі елементи, що знаходяться в файлі HTML, сімейство anchors містить всі закладки, forms – HTML-форми, наявні в документі, і т.д. Сімейства, відображені на Рис. 7.1, наприклад, frames або forms, присутні в об'єкті document завжди, незалежно від того, чи є фрейми або форми в даному документі.
Сімейства є масивами з кінцевим числом елементів, причому кількість елементів в сімействі визначається властивістю length. Щоб визначити загальну кількість елементів в HTML-документі, можете ввести в сценарій наступну команду:
alert(document.all.length);
Крім сімейств, об'єкт document містить властивості. Одне з них ми вже навели вище – це властивість title, яка містить рядок-заголовок документа. Перерахуємо інші властивості document:
Location – повертає уніфікований покажчик ресурсу (в Netscape синонімом цієї властивості є URL);
lastModified – рядок, який визначає дату і час останньої зміни, внесеної в документ: дату і час останньої зміни повертає також властивість fileModifiedDate;
fileCreatedDate – повертає дату створення документа;
fieUpdatedDate – повертає дату останнього оновлення файлу сервером;
cookie – повертає список, що містить пари ім'я-значення, cookie - це невеликі масиви даних, які зберігаються браузером і пов'язані з певною Web-сторінкою або сервером. Властивість cookie дозволяє зчитувати, створювати, модифікувати і знищувати вказані дані;
referrer – повертає URL ресурсу, з якого був виконаний перехід за гіперпосиланням до даного документу;
bgColor – властивість для читання і запису, яке повертає колір фону документа; цій властивості відповідає однойменний атрибут в тезі <BODY>;
fgColor – властивість, що відповідає кольору тексту документа і подане атрибутом text в тезі <BODY>;
linkColor – властивість для читання і запису, яке відповідає кольору гіперпосилання;
в тезі <BODY> цій властивості відповідає атрибут link, який за замовчуванням вважається рівним blue (# 0000FF);
alinkColor – властивість, що повертає колір активного гіперпосилання і має еквівалент alink в тезі <BODY> (в Internet Explorer не підтримується); за замовчуванням властивість alinkColor повертає значення red (# FF0000);
vlinkColor – властивість, що відповідає кольору переглянутого гіперпосилання і атрибуту vlink в тезі <BODY>; за замовчуванням vlinkColor повертає значення purple (# 800080).
Кожне з наведених властивостей приймає значення рядка. Крім властивостей, об'єкт document включає в себе ряд методів, що дозволяють, наприклад, динамічно виводити текст документа, відкривати і закривати документ.
Модель DOM0 існувала де-факто році. З тих пір були введені нові теги, з'явилися нові браузери, які не повністю підтримують цю модель, тому в жовтні 1998 р. була прийнята рекомендація W3C по першому рівню DOM (DOM 1), а в листопаді 2000 р. прийнято рекомендації щодо другого рівня DOM (DOM 2), істотно розширює DOM 1.
Модель DOM2. У цій моделі документ HTML має ієрархію, визначену вкладеністю елементів: кореневий елемент (загальний предок) html, його нащадки – діти head, body, онуки title, h1 – і так далі.
мРисунок 7.2 – Об'єктна модель DOM2
Консорціум W3C стандартизованих DOM першого і другого рівнів (DOM 1 і DOM 2):
DOM 1 описує базове уявлення XML- і HTML – документів у вигляді дерев об'єктів.
DOM 2 розширює базові інтерфейси DOM 1 і додає до них підтримку подій і стилів.
Таким чином, DOM 2 включає в себе DOM 1. Основні інтерфейси описані в DOM 2 Core: http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113
Специфіка HTML відображена в DOM 2 HTML: http://www.w3.org/TR/DOM-Level-2-HTML
Ці специфікації вельми складні. Крім того, вони описують якийсь ідеал, який на практиці реалізований не в повній мірі. На практиці робота здійснюється з об'єктною моделлю конкретного браузера. Браузер, будучи програмою для відображення документа, доповнює DOM власними об'єктами, властивостями, методами, подіями, колекціями. Наприклад, об'єкт window – вікно браузера.
DOM рівня 2 був опублікований в кінці 2000 року. Він ввів функцію «getElementById», а також модель подій і підтримку XML: namespace і CSS. DOM рівня 3 — поточна версія специфікації DOM, опублікована у квітні 2004 року, додала підтримку XPath та обробку подій клавіатури, а також інтерфейс для серіалізації документа XML.
У 2005 році велика частина W3C DOM підтримувалася основними браузерами, що задовольняють ECMAScript, включаючи Internet Explorer версії 6 (2001 рік), Opera, Safari і браузери, засновані на Gecko (у тому числі Mozilla, Firefox, Mozilla і Camino).
Веб-браузери не зобов'язані використовувати DOM, щоб виконувати HTML-документ. Однак DOM потрібно для скриптів JavaScript, які бажають спостерігати або змінювати веб-сторінку динамічно. Іншими словами, Document Object Model – це інструмент, з допомогою якого JavaScript бачить вміст HTML-сторінки і стан браузера.
