diploma/Terminology.tex

39 lines
8.2 KiB
TeX
Raw Permalink 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{англ.} иерархические Модель-Вид-Кон\-троллер.
Каждая тройка модель-вид-контроллер называется триадой. Каждая триада независима и отвечает за один объект, описываемый Моделью.
Модель и только Модель имеет знания о природе объекта, например, где хранятся данные и как их необходимо проверять. Контроллер отвечает за логику работы с объектом. Он вычисляет значения переменных, инициирует изменение данных, передаёт данные в Вид. Вид отвечает за представление и только за представление данных; в Виде не производится никаких вычислений.
Каждая триада совершенно независима и может выполняться при отсутствии любой другой. Все запросы к триадам идут через их контроллеры. Любая часть системы может выполнить запрос к любой триаде. Так, вид триады главной страницы может вызвать запросы к триаде рекламного блока, к триаде текстового блока и триаде навигационного блока. При этом модификация, например, навигационного блока сможет проходить независимо от других — а изменения отразятся во всех видах, вызывающих эту триаду.
\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 и другие. Вместе эти технологии находятся на одной ступени развития: они медленно внедряются в браузеры и постепенно получают новые свойства. Их очень просто и удобно использовать программисту, но в реальных веб-приложениях часто приходится вставлять различные обработчики для старых браузеров.