«Знание — могущество».

9 января 2010

Правильная модель web-приложения

написал Figaroo в рубрике Web-разработка @ 15:59

Для начала картинка:

model web Правильная модель web приложения

Модель web-приложения

Любое сложное веб-приложение, как правило, состоит из серверной части (ServerSide) и клиентской части (ClientSide), которые взаимодействуют между собой.

Представим, что наше приложение — это обыкновенный сайт (example.com), и пользователь перешёл по адресу http://example.com/news/2010/. Браузер пользователя отправит запрос приложению, передав в качестве некоего параметра строку "/news/2010/".

Работа серверной части
Этот параметр будет перехвачен моделью (ServerSide Model), которая передаст управление контроллеру (Controller) news (см. ЧПУ, но не будем углубляться в тонкости реализации). Далее этот контроллер определяет, что пользователь хочет получить новости за 2010-ый год (по строке "/news/2010/"), обращается к модели с соответствующим запросом (например, получение новостей из базы данных), и передаёт требуемые данные шаблону (Template). Шаблон обрабатывает полученные данные и отдаёт их пользовательскому браузеру, как правило, в виде HTML-документа.
В случае POST-запроса всё происходит точно также, передаваемые данные обрабатывает контроллер страницы.

Работа клиентской части
Браузер получит HTML-документ. В данной правильной модели HTML отвечает только за разметку документа. Затем браузер получит CSS-часть (Style) и JS-часть (Script) для данного документа. СSS определяет оформление документа, а JS — отвечает за поведение.
Например, HTML говорит: «это заголовок новости, это тело новости, это дата новости», CSS говорит: «заголовок должен выглядеть так-то, тело должно выглядеть так-то, дата должна выглядеть так-то, но тело и дата по умолчанию скрыты от пользователя», а JS говорит: «при клике мыши на заголовок новости будут показаны её тело и дата»

Web-приложение может иметь общий шаблон (CommonTemplate), который будут наследовать все остальные шаблоны, а также некий общий CSS-документ (CommonStyle), влияющий на все страницы.

Немного подробнее про «поведение клиентской части»
Обычно, web-приложение имеет некий базис для работы JS-скриптов страниц (ClientSide Model). Это библиотека функций и объектов, фреймворки (jQuery, Mootools...), и т.д. А JS-части страниц управляют поведением конкретной страницы в определённых для неё случаях.
Если JS-части потребуется обратиться с AJAX-запросом для передачи или получения некоторых данных к серверной части, то она обращается с ним к контроллеру страницы. Можно сказать, что JS-часть — это «клиентский контроллер страницы».

Итоги и выводы
Данная модель описывает взаимодействие серверной и клиентской части web-приложения, серверная часть которого построена в духе MVC, а клиентская часть &mdash в духе разделения разметки, оформления и поведения страницы.
Естественно, данная модель абстрактна, и в реальных приложениях некоторые части могут отсутствовать или присутствовать дополнительные, а также взаимодействие может происходить по более сложной схеме. (Например, приложение может быть блог-движком или форумным движком и предоставлять возможность расширения себя самого с помощью плагинов.)

Спасибо за внимание.

Нет комментариев »

Комментариев нет.

RSS-лента комментариев к этой записи

Оставить комментарий

Пожалуйста, заполните все поля.

© Валерий 'Figaroo' Киркиж, 2008-2012 гг.