diploma/Terminology.tex

32 lines
5.8 KiB
TeX
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

\chapter{Терминология}
\section{AJAX}
Asynchronous JavaScript and XML, \textit{англ.} Асинхронный JavaScript и XML -- группа не связанных между собой техник, используемых на стороне клиента для создания интерактивных интернет-программ, \cite{ajax}. Термин был введён в 2005м году в статье Джессе Джеймса Гарретта, \cite{ajax-origin}.
Идея AJAX в том, чтобы расширить роль браузера от ультратонкого клиента, который содержит минимум логики и почти не выполняет вычислений, исключительно представляя информацию пользователю, до толстого клиента, который может самостоятельно работать с данными, полученными от сервера.
В традиционной модели «тонкий клиент-сервер» клиент должен выполнить запрос (GET или POST) каждый раз для изменения данных. В течение выполнения запроса работа с веб-страницей невозможна, так как после выполнения запроса загружается новая страница.
Модель AJAX предлагает асинхронное выполнение запросов, не прерывающее работу с данными во время их изменения. Каждый запрос HTTP заменяется запросом к Javascript; всё, что не требует соединения с сервером — проверка данных, редактирование данных, возможно навигация — проводится на стороне клиента.
Слово «AJAX» было введено как короткий аналог фразы «Асинхронный JavaScript, CSS, DOM и XMLHttpRequest».
Важнейшей технологией из группы AJAX является вызов Javascript XML\-HttpRequest. Он был реализован в различных браузерах в 2000-2005м годах; в версиях Internet Explorer 5, 5.5 и 6 его роль выполнял модуль ActiveX библиотеки MSXML. В настоящее время ведётся работа над черновиком XML\-HttpRequest уровня 2.
По соображениям безопасности запросы к другим доменам с данного запрещены; это ограничение обходится разными путями, самым простым из которых является HTTP заголовок \verb/Access-Control-Allow-Origin/.
\section{DOM}
Document Object Model, \textit{англ.} объектная модель документа.
Согласно Консорциуму Мировой Паутины (World Wide Web Consortium, W3C), DOM — это платформо- и языконезависимый интерфейс, который позволяет программам динамически получать доступ и обновлять содержимое, структуру и стиль документов. Обработка документа может быть продолжена, и результаты обработки могут быть внедрены обратно в просматриваемую страницу. \cite{w3c-dom}
DOM — это стандарт W3C для доступа к HTML и XML документам. Она задаёт объекты и свойства всех элементов документа, а также методы (интерфейс) управления ими.
\section{HMVC}
Hierarchical Model-View-Controller, \textit{англ.} иерархические Модель-Вид-Кон\-троллер.
Каждая тройка модель-вид-контроллер называется триадой. Каждая триада независима и отвечает за один объект, описываемый Моделью.
Модель и только Модель имеет знания о природе объекта, например, где хранятся данные и как их необходимо проверять. Контроллер отвечает за логику работы с объектом. Он вычисляет значения переменных, инициирует изменение данных, передаёт данные в Вид. Вид отвечает за представление и только за представление данных; в Виде не производится никаких вычислений.
Каждая триада совершенно независима и может выполняться при отсутствии любой другой. Все запросы к триадам идут через их контроллеры. Любая часть системы может выполнить запрос к любой триаде. Так, вид триады главной страницы может вызвать запросы к триаде рекламного блока, к триаде текстового блока и триаде навигационного блока. При этом модификация, например, навигационного блока сможет проходить независимо от других — а изменения отразятся во всех видах, вызывающих эту триаду.