Статьи

Два вида AJAX: HTML ++ против клиента / SOA

Думаю, это необходимо четко сформулировать, следуя комментарию Билла Эдни о техническом преследовании (Тибет), и потому что я думаю, что он отражает опыт, который люди испытывают с AJAX.

Вкратце, думаю, что будет AJAX-приложение двух видов, одно из которых я назову «HTML ++», а другое — упомянутое в законе Client / SOA Bill. Чтобы описать их примерно …

HTML ++

AJAX используется для улучшения существующих HTML-форм / взаимодействия с пользователем, но фундаментальная парадигма остается той же, что и у «обычных» веб-приложений. Некоторые ключевые запахи этого стиля;

  1. Перезагрузки страниц все еще происходят часто
  2. Возможно (если вы приложите усилие) изящно перейти на не поддерживающие браузеры / браузеры с отключенным JS.
  3. Состояние сеанса по-прежнему находится на сервере.

На практике это то, что все делают сейчас, с разной степенью успеха. Для многих я думаю, что усилия и затраты на «переход на HTML ++» значительно перевесят выгоду. Практически думайте, что это лучше всего делать на стороне сервера с помощью таких инструментов, как HTML_AJAX, которые «думают» за вас (примечание: во время этого выступления упомянутый JPSpan фактически мертв — HTML_AJAX в некоторой степени является его преемником — это немного похоже на PEAR :: SOAP и NuSOAP ).

Между тем, интересный пример «между ними», который, как мне кажется, подчеркивает разницу, — это корзина покупок script.aculo.us . Каждый раз, когда вы помещаете товар в корзину, он сообщает серверу об этом, затем получает новый список содержимого корзины и обновляет клиентскую часть. Другими словами, сервер судит о том, что находится в вашей корзине. Это интересно, потому что вы можете утверждать, что корзина может оставаться исключительно клиентской, отправляя что-либо на сервер, только когда вы решите отправиться на «оформление заказа». На практике, вероятно, корзина будет использоваться на сайтах, где она будет работать на нескольких «страницах» (или вкладках), которые совместно используют один сеанс на стороне сервера.

Клиент / SOA

Как сказал Билл, Client / SOA будет использовать то же самое. SOA, возможно, еще не является концепцией, которая легко передает идеи. Мой взгляд на это начинается с вопроса AJAX: что такое сессия? , Седрик Саваресе (Cédric Savarese) из Form Assembly в Ajax предлагает альтернативный подход : это не только XMLHTTPRequestчасть 2 ), ход мыслей, который приводит к тому, что он сделал с фреймворком freja .

Некоторые из ключевых запахов с клиентом / SOA;

  1. Перезагрузки страницы редки, если вообще. Приложение имеет тенденцию запускаться в одном окне браузера.
  2. Практически невозможно изящно деградировать, не поддерживая отдельные базы кода.
  3. Состояние сеанса в значительной степени обрабатывается клиентом.
  4. Javascript и браузер действуют как среда выполнения в том же смысле, что и среда выполнения Java или .NET.
  5. Это потребует специалистов разработчиков

На самом деле, возможно, неправильно использовать слово AJAX здесь вообще. Чтобы включить этот стиль приложения, вам нужно много клея Javascript, и то, что мы называем AJAX, вероятно, будет настолько глубоко скрыто, что это едва отражается в API, которые вы называете как разработчик приложения.

Насколько я знаю, Tibet — единственный проект с открытым исходным кодом, который сегодня может это сделать, и сейчас нет доступного кода — вам нужно дождаться следующего релиза (который скоро должен быть). Между тем, через Google вы найдете людей, которые бредят по Тибету вплоть до апреля 2001 года .

Какие приложения будут создаваться таким образом, еще неизвестно. Внешне это будет эквивалентно сегодняшним настольным приложениям, но думаю, что победителями здесь будут не те, кто просто пытается заново изобрести то, что уже работает. Например, уже началась гонка за созданием веб-приложений Office Suite, но я думаю, что это в значительной степени дурацкая игра. С точки зрения MS Word, в частности, если вы когда-нибудь видели, что компании обычно делают с шаблонами Word, и задумывались, почему MS разработала InfoPath , вы понимаете, что текстовые процессоры как «единица приложения» больше не интересны. Нечто более похожее на «живые документы», относящееся к определенному типу информации, которую пытается организовать группа людей, и объединение таких вещей, как совместная работа, управление версиями и рабочий процесс, гораздо интереснее.

Кроме того, такого рода приложения могут потенциально затмить другая технология, например, вещи, которые Microsoft упаковывает в Vista, или что-то на основе XUL (возможно, просто расширения Firefox). Думаю, многое зависит от того, что произойдет в ближайшие 12 месяцев.

Во всяком случае — это только мое мышление, опасно граничащее с маркетингом , но в интересах попыток закрепить актуальность AJAX.