
- •Структура и принципы построения сети Интернет. Адресация в Интернет.
- •Понятие сетевого протокола. Основные Интернет-протоколы: tcp/ip, smtp, ftp, http, wap.
- •Протокол http: назначение и особенности. Схема «запрос-ответ» http. Структура http-запроса и http-ответа
- •Методы передачи данных get и post.
- •Рассмотрим небольшую форму, передающую имя пользователя:
- •Формирование ответа сервером
- •Html: назначение, синтаксис определения тегов, структура простейшего html-документа. Понятие xhtml и его особенности.
- •Базовые теги html: форматирование документа, создание ссылок, списков, таблиц, вставка изображений. Понятие слоя (блока). Основные свойства блоков и особенности их определения.
- •Назначение форм на html-странице. Основные теги создания форм и их атрибуты.
- •Понятие css. Способы включения стилей в html-документ. Понятие классов и псевдоклассов в css (привести примеры). Правила каскадирования (приоритета стилей).
- •Виды html-верстки и их особенности. Типовые макеты верстки.
- •JavaScript: назначение, cпособы включения кода JavaScript в состав html-документа, типизация данных, правила объявления локальных и глобальных переменных, объявление и использование функций.
- •Понятие dom (Document Object Model). Способы доступа к элементам html-документа с использованием JavaScript.
- •Функции организации временной задержки в JavaScript.Создание эффектов анимации с использованием JavaScript (привести пример).
- •Библиотека jQuery: назначение, подключение к html-странице, синтаксис команд jQuery, виды селекторов, обработка событий с использованием jQuery.
- •Php: назначение, особенности обработки php-скриптов. Включение кода php в состав Web-страницы. Получение данных формы php-сценарием (привести пример).
- •Php: типизация данных, объявление переменных и констант, определение функций, классификация переменных по области видимости.
- •If (условие) {
- •Виды массивов, поддерживаемых php. Инициализация массивов. Работа с датой и временем в php.
- •Include "путь/имя_файла";
- •Is_file(файл)
- •Is_writeable (файл)
- •Ifwrite(файловый манипулятор, переменная [,длина])
- •Is_readable (файл)
- •Для выполнения всех функций чтения из файла файловый манипулятор должен ссылаться на открытый файл, доступный для чтения. Положение указателя текущей позиции
- •Понятие сессии в php. Понятие идентификатора сессии и способы его передачи.
- •Использование баз данных MySql в Web-приложениях: создание базы данных, общая последовательность действий при работе с сервером MySql, основные функции php для работы с базой данных.
- •Xml: назначение, особенности синтаксиса, структура xml-документа.
- •Dtd: назначение, конструкции для определения элементов и их атрибутов.
- •Dtd: подключение dtd-определения к xml-документу, особенности определения типа элементов и атрибутов xml-документа.
- •Xsd: назначение, отличия от dtd, понятие пространства имен, использование целевого и исходного пространств имен.
- •Xsd: особенности определения элементов и их атрибутов, объявление простых и комплексных типов, подключение схемы xsd к xml-документу.
- •Xsl: назначение, структура xsl-документа, подключение к xml-документу.
- •Основные дескрипторы xsl: выборка данных xml-документа, фильтрация и сортировка данных. Особенности адресации к xml-данным.
- •Технология Ajax: назначение, сущность, этапы выполнения Ajax-запроса.
- •Технология Ajax: назначение объекта xmlHttpRequest, создание его экземпляра, отправка запроса на сервер и принятие ответа сервера.
- •Технология Ajax: разновидности запросов на сервер по типу запрашиваемых файлов и методу передачи данных, кэширование результата при get-запросах.
Технология Ajax: разновидности запросов на сервер по типу запрашиваемых файлов и методу передачи данных, кэширование результата при get-запросах.
Метод объекта XMLHttpRequest() open создает запрос , метод send выполняет отправку
Open(метод передачи, url,способ передачи запроса)
Send([данные]); (при post)
Var xhttp;
Xhttp= new XMLHttpRequest();
Xhttp.open (“get”,”textfile.txt”,true);
Xhttp.send();
кэширование get –может прислать данные запроса из КЭШа а не данные нового запроса
к списку передоваемых параметров добавляется некое случайная перменная, для того чтобы запрос воспринимался как новый
get – проще и быстрее при запросах, однако post более надежен и безопасен. Рекомендуется использовать get, однако его использование недопустимо если:
Необходимо передать секретные данные
Необходимо передать большой объем данных
Необходимо получит не кэшированный результат
В тоже время избежать кэширования можно, если добавить к списку передаваемых параметров временную переменную принимающую случайное значение
xhttp.open(‘GET’,’add.php?x=’+x’&y=’+y+’&t=’+math.random(), true);
Технология Ajax, обработка ответа сервера: возможные состояния готовности сервера, проверка состояния готовности, определение кода ответа сервера на запрос. Использование jQuery для генерации Ajax-запросов.
Состояние готовности сервера
Коды ответа сервера
Принятие ответа сервера
Передача данных на сервер
1.
Что бы узнать состояние готовности сервера используется свойство readyState
Всего существует 5 состояний
Состояние готовности сервера:
Запрос не инециализорован(0)
Установлено соединение с сервером(1)
Запрос получен (2)
Идет обработка запроса (3)
Обработка запроса закончена и ответ готов (4)
Во время обработки запроса свойство readyState поочередно принимает значения от 0 до 4.
Событие onreadystatechange выполняет код при изменение содержимого свойства readyState (в теле прописывается ограничение)
Xhttp=new XMLHttpRequest();
Xhhtp.onreadystatechange=function()
{
If (xhttp.readystate=4)&&(xhttp.status==200)
{
Document.getElementById(‘res’)=xhttp.responseText;
Xhttp.open(“get”,filetext.txt,true);
Xhttp.send();
}
}
2.
Код ответа сервера можно получить при помощи свойства status
200 – успешно обработано
3
Для того что бы принять ответ сервера, используется свойство resposeText и resposeXML
resposeText –хранит ответ сервера как строку символов
resposeXML – хранит ответ сервера виде XML файла
4
Пример выполняющий суммирование двух чисел
Var x=document.getElementById(‘t1’).value;
Var y=document.getElementById(‘t2’).value;
var xhttp=new XMLRequest();
xhttp.onreadystatechange=function() {
if (xhttp.readyState==4)&&(xhttp.status==200){
document.getElementById(‘res’).innerHTML=xhttp.responseText;}}
xhttp.open(‘GET’,’add.php?x=’+x’&y=’+y, true); //add.php?x=5&y=6
xhttp.send();
пример 2, специально для нади
Var x=document.getElementById(‘t1’).value;
Var y=document.getElementById(‘t2’).value;
var xhttp=new XMLEequest();
xhttp.onreadystatechange=function {
if (xhttp.readyState==4)&&(xhttp.status==200){
document.getElementById(‘res’).innerHTML=xhttp.responseText;}}
setRequestHeader(‘content-type’,’application/x-www-form-urlencoded’); //определяется тип передоваемого содержимога, в данном случае данные с формы
xhttp.open(‘post’,’add.php’,true);
var str=’x=’+x+’&y=’+y;
xhttp.send(str);
5.4 Генерация и обработка XML данных
Работа с DOM JS
Свойства responseXML
Обработка ошибок связанных с некорректной структурой XML
Генерация XML-документа в PHP
Обработка ошибок на стороне сервера
1.
DOM – это объектная модель используемая для HTML и XML документов.
Каждый HTML или XML тэг образует узел дерева с типом элемент. Для представления текста создаются узлы с типом текст
Навигация в DOM
Доступ к элементам DOM и текстовым узлам начинается с объекта документ document
Получить корень дерева можно 2 способами:
Document.documentElement
Document.body
Оба способа практически аналогичны, однако при доступе document.body в момент обработки тега head он может быть равен null
Из узла родителя можно получить все дочерние элементы, путем обращения к массивам childNodes или children
Массив childNodes хранит все дочерние элементы включая текстовые(нумерация как и везде с 0)
Массив children содержит только дочерние узлы соответствующие тэгам, т.е. узлы элементы
<html>
<head> </head>
<body>
<div>
Na4alo </div>
<ul>
<li> soderjanie
</ul>
<div> finih</div>
</body>
</html>
Body
# div # ul # div #
Na4alo # li # finih
Soderjanie
Для быстрого доступа к первому и последнему потомку используется свойство firstchild (childNodes[0]) и lastchild(childNodes[childNodes.length-1])
FirstelementChild lastElementChild(только узлы элементы) аналоги firstChild lastChild.
Ссылки на родительский узел используется свойство parentNode
Свойство previousSibling и nextSibling дают доступ к левому и правому соседу
Так же к свойствам DOM узлов относятся :
nodeType тип узла возвращает 1, если узел –элемент, 3 – текст
nodeName/tageName –название элементов(тэгнаме), а также элементов и текстовых узлов (ноденаме)
innerHTML – изменение\получение содержимого элемента в виде HTML
outerHTML –содержит полный HTML код узла элемента
nodeValue/data – содержимое текстового узла или комментария
Для создания элементов используется метод createElement для создания текстового узла- createtextNode
Document.createElement(‘name teg’);
Document.createTextNode(‘ tekst’);
(на странице не размещены)
Для того что бы добавить элемент на страницу используются методы appendChild и insertBefole
parElem.appendChild(elem);
parElem.insertBefore(elem,nestSibling); (parElem –родительский элемент, при создание заменяется на имя родительского)
пример:
body
div div2
1 2
<div id=’i1’> B</div>
Создание и добавление элемента на страницу между div div2:
Var myDiv=document.createElement(‘div’);
myDiv.id=’i1’;
myDiv.innerHTML=’B’;
body.insertBefore (myDiv, body.children[1]);
Для удаления узлов используется 2 метода.
Для удаления узла используется метод removeChild для замены replaceChild
parElem.removeChild(elem);
parElem.replaceChild(elem,changeElem); (changeElem имя элемента на который заменяем)
Свойства responseXML
Test.xml :
<books>
<book>
<title> </title>
<language> </language>
<language> </language>
</book>
</books>
Запросить док, найти первую книгу(содержимое первого тэга title), вывести название и все языки, на который переведена.(примечание тэги language определены только для первой книги/ считываются все тэги language)(div id=”ajax”)
Var xhrrp=newXMLHttpRequest();
Xhttp.onreadystatechange=function(){
If(xhttp.readyState==4&&xhttp.status==200){
Var z==xhttp.resposeXML;
Var str=”name 1 book”+z.getElementsByTagName(‘title’)[0].childNodes[0].nodeValue;
Str+=”</br>Soderjimoe language”;
Var lang=z.getElementsByTagNAme(‘language’);
For(i=0;i<lang.length;i++){
Str+=lang[i].childNodes[0].nodeValue+”/”;
}
Document.getElementsById(‘ajax’).innerHTML=str;
}}
//создание и отправка запроса
Xhttp.open (“Get”,”test.xml”,”true”);
Xhttp.send ();
Language есть в разных тэгах
Var b=z.getElementsByTagName(‘book’);
For(i=0;i<b.length;i++){
For (j=0; j<b.children.length;j++){
If b[i].children[j].tageName==’LAGUAGE’){
Str+=b.[i].children[j].childNode[0].data;
}
}