Основы AJAX и начало работы с Microsoft ASP.NET AJAX Framework
ОГЛАВЛЕНИЕ
Так как AJAX включает в себя несколько несравнимых технологий на различных уровнях сетевого стэка, реализация AJAX без использования AJAX Framework сложна и подвержена ошибкам. К счастью, Microsoft выпустил бесплатный AJAX Framework для разработчиков ASP.NET - Microsoft ASP.NET AJAX. Данная статья является первой в серии статей, которые исследуют ASP.NET AJAX Framework. Эта глава содержит общее представление о технологии AJAX и рассматривает начало работы с фрэймворком от Microsoft. Другие главы фокусируются на конкретных элементах управления и сценариях.
Краткая история Ajax
Модель клиент-сервер является архитектурой, которая подразумевает двух актеров: клиента и сервера. Сервер пассивно ждет запроса от клиента и, получив такой запрос, обрабатывает его и возвращает ответ. Клиент несет ответственность за инициацию запросов на сервер, после чего он ждет и затем обрабатывает информацию, возвращенную в ответ. Веб-приложения являются классическим примером модели клиент-сервер. Клиент, а это чаще всего веб-бразуер, посылает запрос о конкретном ресурсе на веб-сервер. Ресурс может быть статическим, как страница HTML или изображение, которое веб-сервер может просто-напросто вернуть, или это может быть динамическое значение, такое, как страница ASP.NET, которая должна быть обработана на сервере до того, как его сгенерированная разметка может быть послана обратно. Несмотря на это, интерактивность остается той же: клиент запрашивает конкретный ресурс, и сервер возвращает его, будь то бинарное значение, JPG изображение или HTML с визуализированной страницы ASP.NET.
Недостатком модели клиент-сервер является время ожидания. Клиенты должны периодически сообщаться с сервером, чтобы обновить сервер пользовательским вводом, либо чтобы получить новейшую информацию с сервера. Во время этих периодов, пользователь должен ждать какое-то время, пока цикл запрос\ответ завершится. Эта задержка наиболее заметна в приложениях ASP.NET, когда происходит постбэк. Представьте сайт по электронной коммерции (eCommerce), который создает листинг товаров в табличной сетке, где содержимое можно отсортировать и пролистать. Как бы то ни было, переход к следующей странице требует наличия постбэка на сервере, для того чтобы получить следующую страницу продуктов. Следовательно, переход к следующей странице создает задержку для пользователя, которая может длиться от одной до нескольких секунд, в зависимости от нескольких факторов (скорость интернет-соединения пользователя, перегрузка сети, загрузка сервера, длительность запроса к базе данных и так далее).
Главным "преступлением" здесь является то, что постбэк требует, чтобы все поля страницы были отосланы на сервер, и чтобы все содержимое страницы было возвращено браузеру. Такой объем обменной информации является излишеством, так как все, что на самом деле необходимо клиенту, это информация о следующей странице товаров. AJAX избегает таких задержек путем использования JavaScript, чтобы осуществить асинхронные постбэки на веб-сервер; эти постбэки передают и получают минимальное количество информации, необходимой для выполнения требуемой операции.
Существует несколько доступных AJAX структур. Большинство вендеров элементов управления ASP.NET предлагают коммерческие реализации AJAX, но существует также несколько бесплатных библиотек. В 2006 Microsoft выпустил свой собственный AJAX Framework - Microsoft ASP.NET AJAX, который является центральной темой данной серии статей.