Общие сведения о ASP.NET AJAX

Visual Studio 2010

Обновлен: Ноябрь 2007

Возможности AJAX в ASP.NET позволяют быстро создавать веб-страницы с обогащенным пользовательским интерфейсом, содержащим известные элементы пользовательского интерфейса. К числу возможностей AJAX относятся библиотеки клиентских сценариев, включающие не зависящие от обозревателя технологии ECMAScript (JavaScript) динамического HTML (DHTML), также интеграцию с серверной платформой разработки ASP.NET. Используя возможности AJAX, можно улучшить пользовательский интерфейс веб-приложений и повысить их эффективность.

Возможности AJAX в ASP.NET позволяют создавать веб-приложения с богатым пользовательским интерфейсом, обладающие многими преимуществами по сравнению с веб-приложениями, целиком являющимися серверными. Приложения с поддержкой AJAX обладают следующими достоинствами:

  • повышенная эффективность благодаря тому, что значительная часть обработки веб-страницы выполняется в обозревателе;

  • знакомые элементы пользовательского интерфейса, такие как индикаторы хода выполнения, подсказки и всплывающие окна;

  • частичное обновление страницы, при котором обновляются лишь отдельные части изменившейся веб-страницы;

  • интеграция клиента со службами приложения ASP.NET для проверки подлинности с помощью форм, управления ролями и пользовательскими профилями;

  • автоматически создаваемые прокси-классы, упрощающие вызов методов веб-службы из клиентского сценария;

  • структура, позволяющая настраивать серверные элементы управления для включения клиентских возможностей;

  • поддержка наиболее популярных и распространенных обозревателей, включая Microsoft Internet Explorer, Mozilla Firefox и Apple Safari.

Архитектура возможностей AJAX в ASP.NET состоит из двух частей: библиотек клиентских сценариев и серверных компонентов. Благодаря интеграции этих двух частей образуется надежная структура разработки.

Bb398874.alert_note(ru-ru,VS.100).gifПримечание.

Помимо возможностей AJAX в ASP.NET можно использовать набор элементов управления AJAX ASP.NET и возможности, входящие в состав выпусков Microsoft ASP.NET Futures — и те, и другие поддерживаются сообществом разработчиков.

В следующем примере демонстрируется функциональность, включенная в библиотеки клиентских сценариев и серверные компоненты.

Клиентская и серверная архитектуры ASP.NET AJAX
Клиентская и серверная архитектуры ASP.NET AJAX

Иллюстрация демонстрирует функциональность клиентской Microsoft AJAX (библиотека), включающей поддержку создания клиентских компонентов, совместимость с обозревателями, сетевые и базовые службы. Также в примере показана функциональность серверных элементов AJAX, включая поддержку сценариев, веб-службы, службы приложения и серверные элементы управления. В следующих разделах эти возможности описаны более подробно.

Клиентская архитектура включает библиотеки для поддержки компонентов, совместимость с обозревателями, сетевые средства и базовые службы.

Компоненты

С помощью клиентских компонентов реализуется обогащенный пользовательский интерфейс в обозревателе без операций обратной передачи. Компоненты делятся на три категории:

  • невизуальные объекты, инкапсулирующие код, как объект, представляющий таймер;

  • поведения, расширяющие базовое поведение существующих элементов DOM;

  • Элементы управления, представляющие новый элемент DOM, обладающий пользовательским поведением.

Тип используемого компонента зависит от требуемого типа клиентского поведения. Например, водяной знак в существующем текстовом поле можно создать, используя поведение, связанное с текстовым полем. Дополнительные сведения см. в разделе Создание клиентских компонентов и элементов управления.

Совместимость с обозревателями

Уровень совместимости с обозревателем обеспечивает совместимость сценариев AJAX с наиболее распространенными обозревателями (включая Microsoft Internet Explorer, Mozilla Firefox и Apple Safari). Это позволяет писать сценарии, не зависящие от того, в каком из поддерживаемых обозревателей они будут выполняться. Дополнительные сведения см. в разделе Выбор параметров безопасности для страниц ASP.NET с поддержкой AJAX.

Сетевое взаимодействие

Сетевой уровень обеспечивает взаимодействие между сценарием в обозревателе с одной стороны и веб-службами и веб-приложениями с другой стороны. Кроме того, он управляет асинхронными вызовами удаленных методов. Во многих распространенных сценариях, таких как частичное обновление страницы, содержащей элемент управления UpdatePanel, сетевой уровень используется автоматически и для этого не требуется писать программный код.

Кроме того, сетевой уровень обеспечивает поддержку доступа к серверной проверке подлинности с помощью форм, информации о ролях и профилях в клиентском сценарии. Эта поддержка доступна также для веб-приложений, созданных без использования ASP.NET, если эти приложения имеют доступ к Microsoft AJAX (библиотека). Дополнительные сведения см. в разделе Веб-службы в ASP.NET AJAX.

Базовые службы

Библиотеки клиентских сценариев AJAX в ASP.NET состоят из файлов JavaScript (с расширением JS), содержащих функциональные элементы, используемые для объектно-ориентированной разработки. Объектно-ориентированные возможности, включенные в библиотеки клиентских сценариев AJAX в ASP.NET, обеспечивают высокий уровень совместимости и модульности при написании клиентских сценариев. В состав клиентской архитектуры входят следующие базовые службы.

  • Объектно-ориентированные расширения JavaScript, такие как классы, пространства имен, обработка ошибок, наследование, типы данных и сериализация объектов.

  • Библиотека базовых классов, включающая такие компоненты, как построители строк и расширенная обработка ошибок.

  • Поддержка библиотек JavaScript, внедренных в сборку или предоставляемых в виде отдельных файлов JavaScript (с расширением JS). Внедрение библиотек JavaScript в сборку облегчает развертывание приложений и помогает в решении проблем, связанных с поддержкой разных версий кода.

  • Дополнительные сведения см. в разделе Создание пользовательского клиента сценария с помощью библиотеки Microsoft AJAX.

Отладка и обработка ошибок

К числу базовых служб относится класс Sys.Debug, предоставляющий методы для отображения объектов в читабельной форме в конце веб-страницы. Кроме того, этот класс отображает сообщения трассировки и позволяет использовать утверждения, а также останавливать выполнение кода в отладчике. Расширенный API объекта Ошибка предоставляет полезные сведения об исключении и поддержку режимов выпуска и отладки. Дополнительные сведения см. в разделе Общие сведения об отладке и трассировке приложений AJAX.

Глобализация

Серверная и клиентская архитектуры AJAX в ASP.NET предоставляют модель локализации и глобализации клиентского сценария. Это позволяет разрабатывать приложения, использующие единую базу кода для предоставления пользовательского интерфейса для многих языков и регионов. Например, архитектура AJAX позволяет коду JavaScript форматировать объекты Date или Number автоматически в соответствии с установкой языка и региональных параметров в обозревателе пользователя, не требуя выполнения обратной передачи данных серверу. Дополнительные сведения см. в разделе Пошаговое руководство. Глобализация даты с использованием клиентского сценария.

Серверные составляющие, поддерживающие разработку с использованием технологии AJAX, состоят из веб-сервера ASP.NET, а также серверных элементов управления и компонентов, управляющих пользовательским интерфейсом и потоком выполнения приложения. Эти серверные составляющие управляют также сериализацией, проверкой, расширяемостью элементов управления и т. п. Существуют также веб-службы ASP.NET, позволяющие осуществлять доступ к службам приложения ASP.NET, используемых для проверки подлинности на основе форм, поддержки ролей и пользовательских профилей.

Поддержка сценариев

Возможности AJAX в ASP.NET реализуется с использованием служебных сценариев, отправляемых сервером клиенту. В зависимости от того, какие возможности AJAX требуются приложению, обозревателю отправляются разные сценарии.

Можно также создавать пользовательские клиентские сценарии для приложений ASP.NET. В таком случае можно использовать возможности AJAX для управления пользовательскими сценариями как статическими JS-файлами (на диске) или JS-файлами, внедренными в сборку в качестве ресурсов.

Возможности ASP.NET AJAX включают в себя модель для режимов выпуска и откладки. Режим выпуска предоставляет проверку ошибок и обработку исключений, оптимизированную для повышения производительности при минимальном размере сценария. Режим отладки предоставляет более основательные возможности отладки, такие как проверка типов и аргументов. ASP.NET выполняет отладочные версии, когда приложение выполняется в режиме откладки. Это позволяет выбрасывать исключения в сценариях отлаживаемого приложения и свести к минимуму размер кода выпуска.

Благодаря поддержке сценариев AJAX в ASP.NET реализуются две важные функции:

Локализация

Архитектура ASP.NET AJAX построена на основе модели локализации ASP.NET 2.0. Она обеспечивает дополнительную поддержку локализованных JS-файлов, внедренных в сборку или предоставляемых в виде отдельных дисковых файлов. ASP.NET может автоматически предоставлять локализованные клиентские сценарии и ресурсы для определенных языков и регионов.

Дополнительные сведения см. в следующих разделах:

Веб-службы

Функциональность AJAX позволяет вызывать из клиентского сценария веб-страницы ASP.NET веб-службы ASP.NET (файлы с расширением ASMX) и службы Windows Communication Foundation (WCF) (файлы с расширением SVC). Ссылки на необходимые сценарии автоматически добавляются в состав страницы, а эти сценарии, в свою очередь, автоматически создают прокси-классы веб-служб, используемые из клиентских сценариев для вызова этих служб.

Можно также осуществлять доступ к веб-службам ASP.NET с использованием серверных элементов управления ASP.NET AJAX (например, при использовании другой среды веб-разработки). Для этого можно вручную включать в состав страницы ссылки на Microsoft AJAX (библиотека), файлы сценариев и веб-службы. Во время выполнения ASP.NET создает прокси-классы, которые можно использовать для вызова этих служб. Дополнительные сведения см. в разделе Веб-службы в ASP.NET AJAX.

Службы приложений

Службы приложений в ASP.NET — это встроенные веб-службы, основанные на использовании проверки подлинности на основе форм, ролей и пользовательских профилей. Эти службы могут вызываться клиентским сценарием веб-страницы, в которой используется технология AJAX, клиентским приложением Windows или WCF-совместимым клиентом. Дополнительные сведения и примеры см. в разделе: Использование веб-служб ASP.NET.

Серверные элементы управления

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

Ниже приведен список наиболее часто используемых серверных элементов управления ASP.NET AJAX.

ScriptManager

Управляет ресурсами сценариев для клиентских компонентов, частичной отрисовки страниц, локализации, глобализации и пользовательских сценариев. Элемент управления ScriptManager необходим для использования элементов управления UpdatePanel, UpdateProgress и Timer.

UpdatePanel

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

UpdateProgress

Предоставляет информацию о состоянии касательно частичного обновления страницы в элементах управления UpdatePanel.

Timer

Выполняет операции обратной передачи с заданной периодичностью. Элемент управления Timer можно использовать для периодического обновления всей страницы или же ее части; в последнем случае он используется совместно с элементом управления UpdatePanel.

Можно также создавать специализированные серверные элементы управления ASP.NET, реализующие клиентское поведение AJAX. Пользовательские элементы , расширяющие возможности других веб-элементов управления ASP.NET, называются управляющими элементами - расширителями. Дополнительные сведения см. в разделах Добавление функциональности AJAX к элементам управления ASP.NET и Общие сведения об управляющих элементах-расширителях ASP.NET AJAX.

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

Поддерживаемые сообществом разработчиков Futures-выпуски AJAX содержат функции, которые расширяют имеющиеся в ASP.NET возможности AJAX; эти функции не включены в ASP.NET, поскольку пока еще находятся на стадии разработки. Сюда относятся дополнительные управляющие элементы-расширители, поддержка декларативного клиентского синтаксиса (XML-сценарии) и многое другое. Дополнительные сведения о выпуске Futures см. на веб-узле ASP.NET AJAX, откуда также можно его загрузить.

Показ: