|
|
|||||||||||||||||||||||||||||
|
Ajax - руководство для растерявшихся: Часть 1. Обзор инструментальных средств и технических приемов Ajax (исходники)Источник: IBM developerWorks Россия Гэл Шакор, Иов Рубин, Лондон Шмулик, Шмуэль Каллнер
Ajax - это технология клиентских Web-приложений, объединяющая JavaScript, Cascading Style Sheets (CSS), HTML, объект Прежде чем отправиться в путешествие по Ajax, необходимо овладеть многими языками, стандартами, инструментальными средствами и библиотеками. Огромное разнообразие вариантов организации среды разработки может поначалу ошеломить. Авторы описывают свой собственный опыт освоения, помогая избежать некоторых наиболее традиционных и досадных проблем, с которыми можно столкнуться. Садимся в фургон AjaxAjax меняет способ работы с Web-сайтом с модели "страница по щелчку" на интерактивную модель традиционных настольных приложений. Пользователи могут избежать перезагрузок страницы и не ждать появления следующей порции содержимого. Вы, вероятно, думаете: легко сказать, но как реализовать? Для ответа на этот вопрос понадобятся некоторые знания технологий, стоящих за Ajax. Ajax - это набор следующих Web-технологий и стандартов, позволяющих использовать машину клиента не только для вывода информации, но и для выполнения (за кулисами процесса) существенной доли логики приложения:
Все эти технологии выполняются внутри Web-браузера пользователя, который выступает в роли платформы, выполняющей Ajax-программы. При использовании Ajax важно понимать, что формирующие его технологии хотя и основаны на стандартах, однако в некоторой степени зависят от браузера; иначе говоря, одно и то же приложение может вести себя по-разному в разных браузерах. Однако, поскольку, во-первых, невозможно ограничить пользователей, рекомендуя конкретный браузер, а, во-вторых, неразумно игнорировать клиентов, использующих браузеры с неполной поддержкой CSS или DOM, создатель приложения должен понимать различия между браузерами. Чтобы стать эффективным Ajax-разработчиком, необходимо:
Источники информацииОдним из лучших учебных руководств по Ajax являются серии статей "Освоение Ajax" на developerWorks, написанные Бретом МакЛафлином (Brett McLaughlin). В них дается обзор различных связанных с Ajax технологий, причем предполагается наличие минимальных знаний в Ajax-программировании. Если вы хотите получше разобраться в Web-архитектуре, познакомьтесь с протоколом Representational State Transfer (REST). Для начала подойдет статья "Как создать протокол REST". Завершив изучение серии "Освоение Ajax" и приступив к собственной разработке, вы столкнетесь с необходимостью получения справочной информации. W3Schools предоставляет интерактивную справочную информацию по базовым Ajax-технологиям (JavaScript, CSS, HTML, DOM, XML и т.д.). Если вы используете браузер Mozilla Firefox, то можете применить дополнительные инструментальные панели (sidebars) DevEdge. Эти панели содержат указатели на стандарты, определяющие конкретные Ajax-технологии, позволяя обращаться к ним как к справочным руководствам. Наконец, если вы хотите держать руку на пульсе Ajax-сообщества, подпишитесь на блог Ajaxian. Браузер в качестве среды исполненияWeb-браузер является не только средой Ajax-разработки, но и отладочной средой. В своем большинстве браузеры могут быть расширены такими отладочными вспомогательными инструментами как средства просмотра дерева DOM-объектов или отладчики. В следующем разделе приведен обзор популярных браузеров:
Internet ExplorerIE остается браузером, которым пользуется большинство пользователей. IE6 - это старый браузер, занимающий очень обширную рыночную нишу. В IE6 многие функциональные возможности CSS и DOM не поддерживаются или представлены в зачаточном виде. Разработчики, использующие IE6, могут столкнуться с некоторыми из следующих известных проблем:
Несмотря на эти проблемы, нужно всегда помнить о том, что большинство пользователей использует именно этот браузер. Можно также попробовать использовать различные библиотеки, например, /IE7/, исправляющие некоторые из недостатков IE6. IE7 предоставляет множество визуальных улучшений по сравнению с IE6, например поддержку закладок. Для разработчиков более важны скрытые улучшения. IE7 обеспечивает более высокую производительность JavaScript-интерпретатора и исправляет многие недостатки IE6 (например, в CSS) так, чтобы большинство совместимых со стандартами Ajax-приложений могло выполняться лишь с незначительными изменениями. Средства отладки в IEС IE можно использовать следующие инструментальные средства отладки приложений:
Браузеры семейства IEМожно использовать Trident, программный механизм браузера IE, для создания "новых" браузеров, таких как maxthon. Слово "новый" взято в кавычки, потому что с точки зрения разработчика ключевые свойства браузера остаются старыми (например, его поддержка Ajax).
Mozilla FirefoxХотя к этому времени было выпущено несколько версий Firefox, в данной статье рассматривается только Firefox 2.0. Firefox очень широко используется разработчиками и продвинутыми пользователями, является браузером номер один для UNIX-подобных операционных систем, имеет открытый исходный код и считается вторым по популярности после IE. Firefox имеет быстрый JavaScript-интерпретатор и очень хорошую реализацию различных Web-стандартов. Из-за его дружественности к Ajax мы настоятельно рекомендуем использовать Firefox для большей части Ajax-разработки. Как правило, многие Ajax-разработчики начинают разработку приложения в Firefox, а затем переносят приложение на другие браузеры. Средства отладки в FirefoxFirefox имеет мощный расширяемый механизм, используемый сообществом при создании большого набора вспомогательных средств для Web-разработки. Однако Firebug - самое важное из них (более подробная информация по возможностям Firebug приведена в статье "Отладка Ajax-приложений в Firebug"). Firebug является универсальным расширением, позволяющим:
Мощь и гибкость Firebug 1.0 задали ориентиры в Ajax-разработке, а также служат вескими причинами считать Firefox наиболее предпочтительным браузером для разработки. Mozilla Gecko, программный механизм Firefox, используется в нескольких браузерах (например, Camino). Эти браузеры имеют те же свойства, что и Firefox, если версии Gecko совпадают. SafariSafari - это браузер, поставляемый с MacOSX (версия 3 работает также и в Windows). Хотя он заметно быстрее Firefox и IE7, в Safari отсутствует поддержка стандартов (хотя последние сборки WebKit имеют улучшения; в следующем разделе приведена более подробная информация по WebKit). Отметим также, что сообщество разработчиков Safari заметно меньше, чем сообщество приверженцев Firefox и IE. В результате в Web меньше информации по Safari, а многие библиотеки не достаточно хорошо протестированы. Средства отладки в SafariМеханизм браузера Safari разработан в рамках проекта с открытым исходным кодом под названием WebKit. Для отладки приложения в Safari мы рекомендуем использовать сборку WebKit. Сборка включает:
Если вы настойчивы в своем желании тестировать приложения в Safari, необходимо включить меню Safari Debug, которое позволяет анализировать дерево DOM, CSS, кэш и т.п. Браузеры, совместимые с SafariWebKit используется в нескольких браузерах, самым распространенным из которых является OmniWeb. IDE и инструментальные средства для AjaxПри разработке новых Ajax-приложений вы увидите преимущества использования IDE, поддерживающей все связанные с Ajax технологии и предоставляющей быструю и приятную среду разработки, а также пользовательский интерфейс. Некоторыми из функциональных возможностей, которые надо принимать во внимание при выборе Ajax IDE, являются:
Хотя возможен вариант покупки IDE, полностью функциональную Ajax IDE с открытыми исходными кодами предоставляет Eclipse, а также соответствующие подключаемые модули, которые загружаются бесплатно. В данном разделе рассматриваются следующие основанные на Eclipse среды Ajax IDE (вместе с подключаемыми модулями):
В данном разделе также рассматривается пакет модульного тестирования JsUnit. Eclipse с Web toolkitЕсли вы являетесь Java-разработчиком, и у вас на сервере есть Java, Eclipse Web toolkit, возможно, самый простой и легкий способ начать Ajax-разработку. Добавление Web tools к Eclipse предоставит вам базовую рабочую среду для разработки Web-артефактов и обеспечит редакторами для файлов HTML, CSS и JavaScript. Обратите внимание на то, что интегрированная среда Eclipse Web tools не ограничивается только Ajax-разработкой, а поддерживает также разработку Web-приложений, выполняющихся, главным образом, на стороне сервера. Предоставляется основная функциональность, такая как подсветка синтаксиса и завершение кода. Возможности отладки и управления объектами DOM, специфичные для задач Ajax-разработки, не предоставляются. Eclipse ATFМожно установить и, таким образом, скомбинировать Eclipse Ajax Toolkit Framework (ATF) с Eclipse Web toolkit, реализовав мощную среду, поддерживающую все необходимые аспекты Ajax-разработки. ATF предлагает следующие функции:
Ценной функциональной возможностью данного инструментального средства является способность запускать, тестировать и анализировать приложение в интегрированной программе XUL runner. AptanaAptana - это очень полезная основанная на Eclipse среда с открытым исходным кодом, которую можно загрузить бесплатно. В отличие от ATF, возможности которого специально нацелены на Ajax-разработку, Aptana представляет собой IDE для разработки приложений Web 2.0. Aptana использует Ruby Development Toolkit (RDT), обеспечивая интеграцию Ruby-Eclipse. Вы можете загрузить Aptana либо как полную Eclipse-среду (что очень сильно все упрощает по сравнению с вариантом ATF), либо как набор подключаемых модулей, добавляемых в предварительно установленную среду Eclipse. Интегрированная среда Aptana предлагает несколько полезных функциональных возможностей, таких как:
Возможно, вы обнаружите, что Aptana - это решение, которое удовлетворяет все ваши потребности и является более простым в установке и изучении, чем ATF. JsUnitJsUnit - это основанная на JavaScript интегрированная среда модульного тестирования, которая была создана путем переноса JUnit (широко используемой библиотеки модульного тестирования для Java) на JavaScript. JsUnit поддерживает описание тестов для JavaScript-функций и выполнение их внутри среды браузера. Если вы ищете способ выполнять совместимые модульные тесты разработанного кода, JsUnit может быть полезной интегрированной средой. Интегрированные среды AjaxВ последнее время появилось много интегрированных сред Ajax-разработки, созданных с целью облегчения потенциально утомительных задач. В данном разделе рассматривается несколько интегрированных сред Ajax с открытыми исходными кодами, которые могут облегчить разработку путем:
Поскольку обзор огромного числа доступных Ajax-сред выходит за рамки данной статьи, мы выбрали только Prototype, script.aculo.us, Dojo и Rico. Более подробный список доступных интегрированных Ajax-сред приведен в "Ajaxian.com 2006 survey". PrototypePrototype - это JavaScript-библиотека, реализующая мощные функции для упрощения Ajax-программирования. Не считаясь сама по себе интегрированной Ajax-средой, она лежит в основе нескольких других интегрированных сред, таких как script.aculo.us, Moo.fx2, Rico и др. Prototype поддерживает:
Prototype, разработанная Сэмом Стивенсоном (Sam Stephenson), использует стиль программирования Ruby и в настоящее время является проектом с открытыми исходными кодами под лицензией Massachusetts Institute of Technology (MIT). Пример сценария PrototypeНиже рассмотрен пример того, как использование Prototype может упростить Ajax-программирование. Допустим, требуется создать страницу с разделом, который будет периодически обновляться и отображать самые последние новости. Устанавливается таймер на вызов метода Листинг 1. Пример Prototype-сценария
Без использования Prototype этот пример сценария потребовал бы намного большего объема кодирования. Script.aculo.usScript.aculo.us - это проект с открытыми исходными кодами под лицензией MIT. Он основан на Prototype и поставляется с Ruby on Rails. Script.aculo.us является популярной интегрированной средой для разработки полнофункциональных Web-UI Rails-приложений, но его также можно использовать с любыми другими технологиями на стороне сервера. Хотя Script.aculo.us считается довольно облегченной интегрированной средой, он имеет развитые анимационные, а также следующие функциональные возможности:
В листинге 2 приведен пример использования мощных анимационных эффектов Script.aculo.us, когда строка текста при нажатии на нее постепенно исчезает из поля зрения. Листинг 2. Анимационные эффекты Script.aculo.us
Dojo ToolkitDojo Toolkit - завершенная интегрированная Ajax-среда, решающая широкий диапазон задач. Dojo обеспечивает:
Одной из сильных сторон Dojo является расширяемость ее виджетов, что позволяет создавать сложные виджеты из простых. В отличие от большинства Ajax-библиотек и интегрированных сред, Dojo следует специфичной программной модели, которая, если ее придерживаться, позволяет проектировать Web-интерфейс способом, воспроизводящим GUI-программирование настольных приложений. Dojo разрабатывается как проект с открытыми исходными кодами организацией Dojo Foundation и предоставляется под лицензией Academic Free License. Как очень активный проект Dojo поддерживается большими корпорациями, такими как IBM, Sun Microsystems, AOL и другими. На рисунке 1 показана копия экрана демонстрационного почтового приложения, использующего Dojo. Вы можете заметить, что Dojo обеспечивает древовидный список, таблицу и многие другие виджеты, помогающие создать аналогичный настольным приложениям UI. Также упрощаются взаимодействия этих виджетов. Рисунок 1. Пример Dojo-интерфейса Интегрированная среда RicoRico - это интегрированная Ajax-среда с открытыми исходными кодами, предоставляемая под лицензией Apache 2.0. Она содержит значительную функциональность в относительно небольшом объеме. Некоторыми из самых важных функциональных возможностей Rico являются:
Хотя Rico имеет меньше функций, чем интегрированная среда Dojo, компактный размер Rico может быть преимуществом, если доступные функции удовлетворяют требования вашей UI-разработки. В частности, виджет Rico LiveGrid может очень упростить традиционную задачу создания динамических таблиц. Путь новичка - начните работать прямо сейчасЕсли вы готовы прыгнуть в фургон Ajax-разработки, следующая последовательность действий укажет вам алгоритм для начала работы. (Примечание: В этой последовательности действий в качестве IDE используется Aptana, а в качестве интегрированной Ajax-среды используется Dojo, однако вы можете изменить конфигурацию в соответствии с вашими требованиями.)
Резюме и дальнейшие действияНа данный момент вы, вероятно, имеете более чем достаточно информации для размышления об инструментальных средствах для Ajax, а если следовали упомянутой здесь последовательности действий для новичков, то у вас уже есть небольшой практический опыт создания Ajax-приложений. Так что же дальше? Углубленное чтение материалов по Ajax-технологиям, выбор и изучение интегрированной Ajax-среды поможет вам сформировать базовые знания. Имеется большое количество материалов по HTML, JavaScript и CSS. Желательно также посетить сайт Ajax Patterns. И ничто не поможет вам поскорее начать работу, если вы ее не начнете - напишите приложение самостоятельно. В следующей статье данной серии мы применим приобретенные знания на практике, разработав простое, основанное на Dojo приложение для чтения блогов. Вы еще не в фургоне Ajax? Скоро будете. Оставайтесь на связи!
|
|