« Поставить закладку » « Сделать стартовой »

« Форумы » « Блоги » « Статьи » « Новости » « Файлы » « Realcoding IRC » « Site map » « Поиск »


Главная Главная
Анонсы Анонсы
Форумы Форумы
Каталог Каталог
Поиск Поиск
Опросы Опросы
Книжный магазин Книжный магазин
Реклама на сайте
Публикации Публикации
Партнеры Партнеры
Карта Карта сайта
Рассылки Рассылки
RSS экспорт
Настройки Настройки
О нас пишут О нас пишут
Контакты Контакты
Гостевая книга Гостевая книга



ПнВтСрЧтПтСбВс
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
    Популярное
Динамическая память; классы Vector и StringBuffer

Вывод

Функция AccessResource

Настройка параметров окна Галереи компонентов

Документ и его представления

Привязка переменных к контролам в Wxwidgets

Основы построения интерфейсов

Глава 8. Формы Windows, графический вывод и печать

Работа с файлами

Бегун убегает от хозяина




    Архив файлов



    Сообщества

    Документация

    Кто на сайте
Вы не зарегистрированы.
Имя:

Пароль:

Запомнить

Регистрация позволит Вам пользоваться дополнительными сервисами.
Сейчас на сайте:
Гостей: 187
Пользователей: 0

Статьи:: Интернет технологии :: AJAX :: Ajax: Новый подход к веб-приложениям



отправить ссылку другу версия для печати  Обсудить на форуме

Ajax: Новый подход к веб-приложениям

Если и можно назвать «гламурным» что-то в современном проектировании интерфейсов, то это создание веб-приложений. В конце концов, когда в последний раз вы слышали чтобы кто-то восхищался интерфейсом продукта не размещённого в Интернете? ( Ладно, кроме iPod.) Все самые свежие и новаторские работы находятся в сети.

Несмотря на это, разработчики веб-интерфейсов не могут ничего поделать с завистью к своим коллегам, которые создают desktop-приложения. Обычные программы имеют всю ту силу и быстроту отклика, которые, кажутся недоступными для веб-приложений. Та же простота, которая способствовала быстрому распространению всемирной сети теперь создаёт разрыв между тем пользовательским взаимодействием, которое можем предоставить мы, и взаимодействием пользователей с настольными приложениями.



Этот разрыв сокращается. Взгляните на Google Suggest. Посмотрите, предполагаемые предложения почти непрерывно обновляются по мере того как вы вводите текст. Теперь зайдите на Google Maps. Увеличьте масштаб. Захватите курсором карту и подвигайте её туда-сюда. Опять же, всё происходит почти мгновенно, без всякого ожидания перезагрузки страницы. Google Suggest и Google Maps - вот два примера нового подхода к проектированию веб-приложений, который мы в компании Adaptive Path называем Ajax. Это понятие образовано как сокращение от «Асинхронный JavaScript + XML» и представляет собой фундаментальный прорыв наших представлений о возможностях веба.

Что такое Ajax

Ajax – не технология. На самом деле это несколько технологий преуспевающих каждая в своей области, собранных в новое сильное направление. Ajax объединяет:

Классическая модель веб-приложения действует следующим образом: большинство действий пользователя отправляют обратно на сервер HTTP-запрос. Сервер производит необходимую обработку – получает данные, обрабатывает числа, взаимодействует с различными унаследованными системами и затем выдаёт HTML страницу клиенту. Эта модель заимствована из первоначального применения веба как гипертекстовой среды, но те кто читали книгу «The Elements of User Experience» знают, то что делает веб подходящим для гипертекста не обязательно делают его хорошим для программных приложений.

Рисунок 1: Сравнение традиционной модели веб-приложений (слева) с моделью Ajax (справа).

В этом подходе много технического смысла, но им не достигается хорошее взаимодействие с пользователем. Пока сервер делает свою работу, чем занимается пользователь? Правильно, ждёт. И с каждым следующим шагом пользователь ждёт ещё и ещё.

Очевидно, если бы мы создавали веб с нуля, то не стали бы заставлять пользователей всё время ждать. Если уж страница загружена, почему взаимодействие с пользователем должно останавливаться каждый раз, когда программе нужно что-то от сервера? В самом деле, зачем пользователю вообще видеть что приложение соединяется с сервером?

В чём отличие Ajax

Приложение Ajax исключает взаимодействие типа старт-стоп-старт-стоп путём введения механизма Ajax как промежуточного слоя между пользователем и сервером. Может показаться что добавляя новый уровень в приложение можно только замедлить его реакцию, но в действительности наоборот.

Вместо того чтобы загружать страницу в начале пользовательской сессии браузер загружает движок Ajax, написанный на JavaScript и обычно спрятанный в скрытый фрейм. Этот движок отвечает за формирование пользовательского интерфейса и взаимодействие с сервером от имени пользователя. Движок Ajax позволяет производить взаимодействие с пользователем асинхронно, то есть независимо от взаимодействия с сервером. Таким образом пользователю больше не нужно наблюдать пустое окно браузера и курсор в виде песочных часов в ожидании действий сервера.

Рисунок 2: Сравнение диаграмм взаимодействия традиционного веб-приложения (сверху) и асинхронного приложения Ajax (снизу).

Каждое действие пользователя, которое обычно производит HTTP-запрос, теперь вместо этого принимает форму JavaScript-вызова движка Ajax. Каждый ответ на действие пользователя, не требующее обращения к серверу, как то простая проверка данных, редактирование данных в памяти, и даже некоторая навигация, выполняется движком самостоятельно. Если же для ответа требуется информация с сервера, например загрузка дополнительного интерфейсного кода, передача данных для обработки, или получение новых данных, то движок производит необходимые запросы асинхронно, обычно при помощи XML, не прерывая взаимодействия пользователя с приложением.

Кто использует Ajax

Огромные инвестиции в разработку подхода Ajax делает Google. Все самые крупные продукты анонсированные за последний год — Orkut, Gmail, последние бета-версии Google Groups, Google Suggest, и Google Maps — приложения Ajax. (За техническими подробностями реализации Ajax обратитесь к отличным исследованиям Gmail, Google Suggest и Google Maps.) Остальные не отстают: многие любимые всеми свойства сервиса Flickr полагаются на Ajax, а механизмы поиска A9.com от Amazon используют похожую технологию.

Эти проекты демонстрируют, что Ajax работает не только в теории, но и на практике для реальных приложений. Это не очередная лабораторная теория. Приложения Ajax могут принимать любой масштаб от простого и с состоящего из одной функции Google Suggest до очень сложного и замысловатого Google Maps.

Работая с Ajax последние несколько месяцев, мы в Adaptive Path поняли, что открыли только верхушку айсберга того богатства взаимодействия и скорости отклика, которые предоставляют приложения Ajax. Сейчас это важное направление развития веб-приложений, и его важность будет только расти. И учитывая большое количество разработчиков, которые уже умеют использовать эти технологии, мы ожидаем увидеть как всё больше организаций последуют примеру Google и используют конкурентные выгоды, которые предлагает Ajax.

Что дальше

Основная задача создания приложений Ajax не техническая. Ведь основополагающие технологии Ajax выдержаны временем, стабильны и хорошо изучены. Наоборот, задача для разработчиков этих приложений заключается в том, чтобы забыть о своих представлениях об ограничениях веб-приложений и начать думать шире, большим спектром возможностей.

 

Будет интересно.


Вопросы и ответы.

13 марта 2005: После публикации эссе Джесси мы получили громадное количество писем от читателей с вопросами об Ajax. Здесь Джесси отвечает на некоторые наиболее общие вопросы.

Вопрос. Изобрела ли Ajax компания Adaptive Path или это сделала Google? Участвовала ли компания Adaptive Path в создании Ajax-приложений Google?
Ответ. Ни Adaptive Path ни Google не изобретали Ajax. Последние работы Google просто лучшие примеры приложений Ajax. Adaptive Path не была вовлечена в разработку Ajax-приложений Google, но мы делали это для других своих клиентов.

Вопрос. Продаёт ли Adaptive Path компоненты Ajax или является владельцем зарегистрированного товарного знака? Где их можно скачать?
Ответ. Ajax это не то, что можно скачать. Это подход, то есть способ представлений об архитектуре веб-приложения использующего определённые технологии. Ни подход, ни само название Ajax не являются собственностью Adaptive Path.

Вопрос. Является ли Ajax ещё одним названием для XMLHttpRequest?
Ответ. Нет. XMLHttpRequest только часть уравнения Ajax. XMLHttpRequest – это технический компонент, который делает возможными асинхронные взаимодействия с сервером; Ajax мы называем общий подход описанный в статье, который основывается не только на XMLHttpRequest, но также на CSS, DOM, и других технологиях.

Вопрос. Для чего нужно было давать всему этому название?
Ответ. Нужно было что-то более короткое чем «Асинхронный JavaScript + CSS + DOM + XMLHttpRequest» для обсуждения этого подхода с клиентами.

Вопрос. Способы асинхронного взаимодействия с сервером существуют уже много лет. В чём же новизна подхода Ajax?
Ответ. Новизна в выдающемся использовании этих способов для изменения фундаментальной модели взаимодействия в реальных веб-приложениях. Ajax закрепляется только сейчас потому, что требовалось время для развития этих технологий и представлений о том как наилучшим образом их применять.

Вопрос. Ajax это технологическая платформа или всего лишь стиль проектирования?
Ответ. И то и другое. Ajax это набор технологий используемых вместе определённым образом.

Вопрос. Для приложений какого типа больше всего подходит Ajax?
Ответ. Пока мы этого не знаем. Из-за относительной новизны данного подхода наши представления о том где он лучше всего применяется всё ещё на начальной стадии развития. Иногда и традиционная модель веб-приложения подходит как наилучшее решение задачи.

Вопрос. Означает ли это что Adaptive Path это анти-Flash?
Ответ. Совсем нет. Macromedia является клиентом Adaptive Path, и мы долгое время поддерживали Flash-технологию. Как специалисты в Ajax мы ожидаем что иногда для каких-то конкретных задач именно Ajax станет наиболее проходящим решением, а иногда лучшим решением будет Flash. Также мы заинтересованы в изучении способов комбинирования этих технологий (как в случае с Flickr, который использует и то и другое).

Вопрос. Есть ли у Ajax значительные ограничения доступности или совместимости с браузерами? Отключают ли приложения Ajax кнопку «Назад»? Совместим ли Ajax с REST? Существуют ли мнения о безопасности разработки в Ajax? Могут ли быть разработаны Ajax-приложения для работы при выключенном JavaScript?
Ответ. На все эти вопросы можно ответить только «может быть». Многие разработчики уже работают в этом отношении. Мы считаем что нужно ещё потрудиться чтобы выявить все ограничения Ajax, и предполагаем что на своём пути сообщество разработчиков встретит ещё много подобных вопросов.

Вопрос. Некоторые из приведённых вами примеров Google не используют XML вообще. Должен ли я использовать XML и/или XSLT в приложении Ajax?
Ответ. Нет. XML это один из наиболее развитых способов ввода и вывода данных из клиентской части Ajax, но ничто не мешает вам достигнуть того же эффекта при помощи таких технологий структурирования данных для обмена как JavaScript Object Notation или тому подобных.

Вопрос. Проще ли разработать приложение Ajax по сравнению с традиционным веб-приложением?
Ответ. Не обязательно. Ajax приложение неизбежно приводит к запуску сложного кода JavaScript на стороне клиента. Не так то легко сделать этот сложный код эффективным и свободным от ошибок, и для успеха в этом потребуются лучшие структуры и инструменты разработки.

Вопрос. Всегда ли приложение Ajax представляет лучшее взаимодействие с пользователем, чем традиционно веб-приложение?
Ответ. Не обязательно. Ajax более гибок для проектировщиков интерфейса. Однако, чем большую мощь мы имеем, тем более внимательно нужно с ней обращаться. Надо быть осторожными в использовании Ajax, чтобы улучшить удобство использования приложений, а не ухудшить его.

Автор: Джесси Джеймс Гарретт (Jesse James Garrett)
Перевод: Алексей Наконечный
(с) Информсервис




Рубрика: AJAX




Подгрузка через AJAX HTML-кода, содержащег....

AJAX

При разработке CMS S.Builder наша команда активно использовала AJAX. Теперь вот решили поделиться накопленным опытом. Начнем с этого хабратопика. Не буду здесь затрагивать различные фреймворки и библиотеки. Свой код всегда роднее. Для работы с AJAX-ом в S.Builder написана библиотека sbAJAX. Можете качать и пользоваться :). В этом файле есть функция sbEvalJS. Для тех, кто не знает, объясню. При подгрузке через AJAX и вставке на страницу HTML-кода, содержащего JavaScript, JavaScript выполняться не будет или полезут баги. Эта функция как раз решает поставленную задачу.


Подробнее... | Рубрика: AJAX | Добавлено: 19.11.2008

Обзор нового релиза самой мощной Ajax библ....

AJAX

Хотя наш обзор немного запоздал, оригинальный Dojo 1.2 вышел в релизной версии ещё 6-го октября, но сейчас мы наверстаем упущенное. И так, Dojo Toolkit — это самая мощная и гибкая ajax-библиотека из всех, что есть на рынке, она активно развивается и имеет большое комьюнити. Кстати, это самое комьюнити, совместно с компанией Sitepen, имеет ещё несколько проектов, среди которых и Cometd и некоторые другие, не менее интересные, о которых мы скоро вам расскажем. Сегодня же все внимание на флагманский продукт — Dojo 1.2.


Подробнее... | Рубрика: AJAX | Добавлено: 19.11.2008

Firebug 1.3 и 1.4 alpha — что нового и инт....

Вебмастеру

Если вы профессиональный веб-разработчик и постоянно имеете дело с разработкой и отладкой сложных AJAX приложений, то наверняка знаете и используете Firebug — плагин для браузера Firefox, предназначенный для отладки и исследования веб-приложений. Текущая его версия, 1.2х достаточно стабильная и функциональна, чтобы помочь в 99% проблем, которые могут возникнуть при разработке. Но и этот инструмент не лишён если не недостатков, то некоторых фич, которые могли бы облегчить работу. И даже идеальный инструмент можно сделать ещё более идеальным, как бы это не звучало.


Подробнее... | Рубрика: Вебмастеру | Добавлено: 19.11.2008

Остальные статьи:

Релиз Microsoft Silverlight 2.0. Что новог...
XML документация в C#
Курсоры в MySQL 5
Microsoft опубликовала подробности о сесси...
Microsoft делится подробностями о том, что...
Тестируем новый javascript от нового брауз...
MySQL Query Cache
Использование провайдеров компиляции в As...
Чего мы ждем от C# 4.0
Delphi 2009 и C++Builder 2009
Джоэл Спольски и Джеф Этвуд запустили новы...
Поиск кода Google /* что нового? */
10 jQuery скриптов для улучшения интерфейс...
Генераторы отчетов FastReport 4 и QuickRep...
День программиста — набор стерeотипов
Индусские програмисты
Вышел Django 1.0
Портативная версия Google Chrome Portable
Исходные коды .Net Frameword 3.5 SP1 для о...
Пишем правильный online WYSIWYG-редактор


Цитата дня (все,добавить):

Портал фрилансеров

работа на дому


    Рубрикатор

Программирование

C/С++
Обучение
Windows API
XAML
Моделирование
Паттерны
Visual Basic 7 .NET
WxWidgets
Функции WinApi
Функции С++
Разработка под Mac OS
Eiffel
Visual Studio 2008
UI дизайн
Алгоритмы
Конкурсные статьи
Turbo Pascal
Visual Studio
CASE-средства
Visual Studio 2005
Без VCL
Delphi
Тех. документация
Тестирование
Software Testing
ООП
TCP/IP
Google Android
Windows Installer
.NET Framework
Драйвера
C# C Sharp
Справка
Проектирование
Информ. системы
Visual Basic
Assembler
Оптимизация кода
Gtk+
Компоненты
Реинжиниринг
Управление проектами
Extreeme programming
Lotus Notes
Алгебраическое проектирование


Интернет технологии

PHP
Perl
ASP
WAP
Cookies
SSI
CGI
Web Servers
VB Script
DNS
CSS
XML
Html
Java Script
Java2ME
Firewall
Flash
.htaccess
Apache
VRML
Протоколы
Поисковые системы
Технология JAVA
Учебник по PHP
Учебник по JavaScript
Учебник по XML
Java Q&A
AJAX
DHTML
XHTML
Dreamweaver
Web 2.0
Python
Вебмастеру
Cisco
Ruby on Rails
Silverlight

Базы данных

Access
InterBase
MySQL
Oracle
ADO .NET
Основы SQL
Учебник по Access 2002
MS
Microsoft FoxPro
Доступ к данным
XML в MS SQL Server 2000
ODBC и MyODBC
Обучение
Caché
DB2
PostgresSQL
Sybase
Теория
Хранилища данных
Безопасность
Реляционные данные
MySQL и mSQL

Остальное:

Разное
Обзоры книг
Безопасность
Графика и дизайн
Юмор
Linux
Фракталы
Microsoft Axapta
Многоядерность
Сети
Microsoft Office
Работа
MS-DOS
Криптография
Графика и игроделание
Новости SDK
Системы защиты
Учебник по AutoCad
CVS
Windows XP
Windows Server 2003
Windows Vista
Windows 7
Мероприятия