diploma/Terminology.tex

39 lines
8.2 KiB
TeX
Raw Permalink Normal View History

2011-05-26 05:14:42 +03:00
\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».
2011-05-26 07:37:11 +03:00
Важнейшей технологией из группы AJAX является вызов Javascript XML\-HttpRequest. Он был реализован в различных браузерах в 2000-2005м годах; в версиях Internet Explorer 5, 5.5 и 6 его роль выполнял модуль ActiveX библиотеки MSXML. В настоящее время ведётся работа над черновиком XML\-HttpRequest уровня 2.
2011-05-26 05:14:42 +03:00
По соображениям безопасности запросы к другим доменам с данного запрещены; это ограничение обходится разными путями, самым простым из которых является HTTP заголовок \verb/Access-Control-Allow-Origin/.
\section{DOM}
Document Object Model, \textit{англ.} объектная модель документа.
2011-05-26 07:37:11 +03:00
Согласно Консорциуму Мировой Паутины (World Wide Web Consortium, W3C), DOM — это платформо- и языконезависимый интерфейс, который позволяет программам динамически получать доступ и обновлять содержимое, структуру и стиль документов. Обработка документа может быть продолжена, и результаты обработки могут быть внедрены обратно в просматриваемую страницу. \cite{w3c-dom}
DOM — это стандарт W3C для доступа к HTML и XML документам. Она задаёт объекты и свойства всех элементов документа, а также методы (интерфейс) управления ими.
2011-05-26 05:14:42 +03:00
\section{HMVC}
2011-05-26 07:37:11 +03:00
Hierarchical Model-View-Controller, \textit{англ.} иерархические Модель-Вид-Кон\-троллер.
2011-05-26 05:14:42 +03:00
Каждая тройка модель-вид-контроллер называется триадой. Каждая триада независима и отвечает за один объект, описываемый Моделью.
Модель и только Модель имеет знания о природе объекта, например, где хранятся данные и как их необходимо проверять. Контроллер отвечает за логику работы с объектом. Он вычисляет значения переменных, инициирует изменение данных, передаёт данные в Вид. Вид отвечает за представление и только за представление данных; в Виде не производится никаких вычислений.
Каждая триада совершенно независима и может выполняться при отсутствии любой другой. Все запросы к триадам идут через их контроллеры. Любая часть системы может выполнить запрос к любой триаде. Так, вид триады главной страницы может вызвать запросы к триаде рекламного блока, к триаде текстового блока и триаде навигационного блока. При этом модификация, например, навигационного блока сможет проходить независимо от других — а изменения отразятся во всех видах, вызывающих эту триаду.
\section{HTML 5}
Пятая версия стандарта HyperText Markup Language, языка гипертекстовой разметки, \cite{w3c-html5}. В настоящее время находится в разработке (последняя ревизия от 25 мая 2011г.), но отдельные положения нового стандарта уже реализованы в новых версиях некоторых популярных браузеров. Новый стандарт намного удобнее для программистов, чем использование HTML 4 и связок Javascript+Java или Javascript+Flash. Например, вместо внедрения на страницу Flash-контейнера с проигрывателем видео, можно указать тег \verb/<video>/, а в формах можно указывать новые типы полей, такие как поле ввода даты (валидация реализуется в браузере).
К сожалению, но нововведения поддерживаются далеко не в полном объёме и только в новых версиях браузеров. Список поддерживаемых тегов также различается между программами. На данный момент упомянутые типы полей форм не поддерживаются нигде, а тег \verb/<video>/ имеет ограниченную функциональность и зависит от видеокодеков.
Для простоты, когда говорят о HTML 5, часто также имеют в виду новые версии других стандартов и новые Web-технологии: CSS 3, SVG, Javascript Canvas и другие. Вместе эти технологии находятся на одной ступени развития: они медленно внедряются в браузеры и постепенно получают новые свойства. Их очень просто и удобно использовать программисту, но в реальных веб-приложениях часто приходится вставлять различные обработчики для старых браузеров.