- •1. Web-приложение. Механизмы cgi и FastCgi.
- •2. Web-приложение. Lamp-стек.
- •Установка на Ubuntu
- •Особенности и достоинства ос Линукс
- •3. Web-приложение. Шаблон проектирования «Модель-Представление-Контроллер».
- •4. Web-приложение. Шаблонизатор.
- •Достоинства:
- •О достоинствах
- •5. Web-приложение. Реляционные базы данных.
- •6. Web-приложение. NoSql.
- •7. Web-приложение. Возможности JavaScript.
- •8. Web-приложение. Среда исполнения. Web-сервер установка и настройка.
- •Среда исполнения
- •9. Развитие Web-технологий. Web 1.0, Web 2.0.
- •10. Развитие Web-технологий. Web 3.0, cемантическая паутина.
- •11. Развитие Web-технологий. Web-сервисы.
- •Использование rest для построения Web-сервисов.
- •12. Протокол http. Структура гипертекстового документа. Основные стандарты.
- •Структура гипертекстового документа.
- •Синтаксис
- •Параметры
- •13. Протокол http. Формы и обработка пользовательских данных.
- •14. Протокол http. Объектная модель документа (dom).
- •15. Протокол http. Пользовательские сеансы.
- •16. Протокол http. Технология ajax.
- •17. Протокол http. Структура сообщений. Заголовки. Коды состояния.
- •18. Облачные технологии. IaaS, PaaS, SaaS.
- •19. Облачные технологии. Google App Engine.
- •Ограничения
- •20. Облачные технологии. Google App Engine. Хранение данных.
16. Протокол http. Технология ajax.
AsynchronousJavascriptAndXml - технология для взаимодействия с сервером без перезагрузки страниц. За счет этого уменьшается время отклика и веб-приложение по интерактивности больше напоминает десктоп.
Поток выполнения, использованный vote, довольно типичен и выглядит так:
Функция создает объект XmlHttpRequest
назначает обработчик ответа сервера onreadystatechange
открывает соединение open
отправляет запрос вызовом send(ответ сервера принимается срабатывающей в асинхронном режиме функциейonreadystatechange)
показывает посетителю индикатор состояния процесса
Для асинхронных запросов от клиента к серверу на стороне браузера служит специальный объект под названием XMLHTTPRequest.
Технология AJAX позволяет нам обмениваться данными меду браузером и сервером в фоновом режиме, не обновляя страницу, то есть без необходимости отправки дополнительных CGI-запросов серверу, что исключает задержки отклика на события, инициируемые клиентом (пользователем). Поэтому такой обмен называется асинхронным.
Под асинхронностью в программировании понимается процесс выполнения команд пользователя без необходимости синхронизации с сервером.
Асинхронность в случае AJAX можно представить в виде двух процессов: высокого приоритета и низкого. Первостепенным действием является процесс отображения страницы браузером. А второстепенным – обработка запросов пользователя сервером. В момент выполнения операций на стороне сервера, благодаря AJAX, браузер хотя и ждет ответа сервера, но не ограничивает работу пользователя со страницей.
Итак, концепция такова: между браузером и сервером не переставая происходит обмен данными, которые:
Вводятся в браузер средствами пользовательского интерфейса;
Отправляются на сервер;
Обрабатываются на сервере, возможно, заносятся в БД;
В это время браузер ожидает возвращение ответа;
Пока браузер ждет, он не прекращает работу пользователя;
Дождавшись данных от сервера в определенном формате, обрабатывает их и выводит в контент HTML страницы.
Осталось упомянуть важный момент: данные циркулирующие между сервером и браузером, должны отвечать определённым правилам форматирования. Такие правила обычно описывают два формата:
XML (eXtensible Markup Language) — расширяемый язык разметки;
JSON (JavaScript Object Notation) —текстовый формат основанный на JavaScript.
В редких случаях можно обойтись свободным текстовым форматом передачи данных, но это скорее исключение.
Технология AJAX расшифровывается как (Asynchronous JavaScript and XML), из этого можно сделать вывод, что разработчики в первую очередь предполагают использование формата XML. Но на деле, как показывает практика все чаще используется формат JSON, в силу своего минимализма. Другими словами – работать с обоими форматами можно одинаково хорошо, но один и тот же набор данных, представленный в JSON и XML, в первом будет иметь меньший размер. Следовательно, если JSON имеет меньший размер, то и передаваться он будет быстрее, чем XML.