Книги, научные публикации Pages:     | 1 |   ...   | 2 | 3 | 4 | 5 | 6 |   ...   | 11 |

Оглавление I. НОВЫЙ ВЗГЛЯД НА WEB-ПРИЛОЖЕНИЕ 31 1. Каким должен быть Web-интерфейс 33 2. Знакомство с Ajax 63 3. Управление кодом Ajax 99 II. ОСНОВНЫЕ ПОДХОДЫ К РАЗРАБОТКЕ ПРИЛОЖЕНИЙ 145 4. Web-страница ...

-- [ Страница 4 ] --

5.4. Частные решения: обмен данными В предыдущем разделе мы рассматривали глобальные архитектурные реше ния и обсуждали вопрос о том, насколько они подходят для создания Ajax приложений. Мы постоянно подчеркиваем важность обмена данными между клиентскими программами и моделью предметной области, поддерживаемой на сервере. Прочитав материал, изложенный выше, можно сделать вывод, что, правильно выбрав базовые средства, мы автоматически решим последу ющие задачи. Увы, это совсем не так. И вы в этом убедитесь, прочитав осталь ную часть главы. Если мы внимательно рассмотрим вопрос обмена данными, то увидим, что для данной задачи существует множество решений. В после дующих разделах мы кратко опишем их и попытаемся выяснить, какой язык наилучшим образом подходит для обмена данными в рамках приложения Ajax. Имея такую информацию, мы сможем принимать более обоснованные решения об использовании конкретных средств.

Задача обмена данными между программами, составляющими приложе ние Ajax, не имеет аналогов в области классического программирования и, следовательно, изучена крайне мало. Мы попытаемся исправить положение дел. В первую очередь выделим четыре категории взаимодействия с пользо вателем: с участием только клиента, ориентированное на содержимое, ори Глава 5. Роль сервера в работе Ajax-приложения Ротированное на сценарий и ориентированное на данные. Взаимодействие, поддержке которого участвует лишь клиент, реализуется наиболее просто, мы вкратце обсудим его в следующем разделе, а затем на конкретном при зере подробно рассмотрим остальные три категории.

5.4.1. Взаимодействие, затрагивающее только клиентскую программу Данный тип взаимодействия характеризуется тем, что действия пользовате ля обрабатываются сценарием, который выполняется в среде браузера. Обра щаться к ресурсам на стороне сервера (в частности, к уровню представления) нет необходимости, а это позволяет обеспечить быстрый отклик програм мы и снижает нагрузку на сервер. Подобное взаимодействие подходит для несложных вычислений, например, для подсчета общей суммы товаров, зака занных пользователем. Для того чтобы такой подход дал желаемые резуль таты, программы, расположенные на стороне клиента и поддерживающие взаимодействие, не должны меняться в течение сеанса работы пользователя и объем их должен быть небольшим. Для приложения, предназначенного для поддержки интерактивного магазина, эти требования выполняются автома тически. Число изделий, предлагаемых пользователю, относительно невелико (по крайней мере, не тысячи пунктов, как в случае библиотеки), и цены на товары не меняются каждую минуту (в отличие, например, от котировок ак ций на бирже). Данный тип взаимодействия уже обсуждался в главе 4 при рассмотрении контроллера, расположенного на стороне клиента, поэтому мы больше не будем уделять ему внимание.

Остальные три категории предполагают обращение к серверу и отлича ются в основном передаваемыми данными. Главные различия между этими типами взаимодействия описаны в следующих разделах;

там же рассмотрены преимущества и недостатки каждого из них.

5.4.2. Пример отображения информации о планетах Перед тем как заняться изучением различных механизмов обмена данными, представим себе простой пример, на котором будем проверять то или иное ре шение. Наше приложение будет представлять информацию о планетах Сол нечной системы. В главном окне представлено изображение Солнечной си стемы с пиктограммой для каждой планеты. На сервере хранятся сведения о планетах;

щелчком на пиктограмме, соответствующей планете, надо отобра зить эти сведения в окне (рис. 5.6). Сейчас мы не будем использовать объект Objectviewer, который рассматривался в главе 4, но еще вернемся к нему.

В данном случае нас больше всего интересует процесс доставки данных, которые должны быть отображены. Мы обсудим форматы данных, передава емых сервером, но не будем углубляться в детали их генерации, так как этот вопрос был рассмотрен в главе 3. В листинге 5.1 показана заготовка кли ентского кода приложения. На ее основе мы будем исследовать различные Механизмы доставки данных.

202 Часть II. Основные подходы к разработке приложений I Рис. 5.6. После щелчка на пиктограмме, соответствующей планете, информация о ней выводится в окне Листинг 5.1. Содержимое файла popups.html 4 Оглавление I. НОВЫЙ ВЗГЛЯД НА WEB-ПРИЛОЖЕНИЕ 31 1. Каким должен быть Web-интерфейс 33 2. Знакомство с Ajax 63 3. Управление кодом Ajax 99 II. ОСНОВНЫЕ ПОДХОДЫ К РАЗРАБОТКЕ ПРИЛОЖЕНИЙ 145 4. // О Включение библиотек JavaScript