|
Программирование >> Программирование с использованием ajax
В действительности лежащая в основе Ajax технология новой не является. Internet Explorer и Web-приложения позволяли делать подобное в течение многих лет. В состав Internet Explorer, начиная еще с версии 5, входил объект XmlHttpRequest, делавший возможной отправку запроса из JavaScript с сохранением страницы в активном состоянии. Именно он и применялся в Outlook Web Access 2000 для предоставления пользователям более высокой степени интерактивности. Проблема заключалась в том, что работать с ним было нелегко. Ajax упрощает использование объекта XmlHttpRequest, и потому сегодня он уже также предлагается и в других браузерах. Ajax основан на следующих технологиях. □ DHTML. На стороне клиента получение доступа и изменение HTML-элементов должно осуществляться программным путем, что стало возможным с появлением динамического HTML (Dynamic HTML). □ JavaScript. Почти все браузеры поддерживают JavaScript - язык сценариев, применяемый для получения доступа к DOM (Document Object Model - объектная модель документов) из DHTML. а 3unlHttpRequest. Этот объект применяется для отправки асинхронных вызовов из JavaScript-кода серверу с целью запрашивания дополнительных данных. а JSON (JavaScript Object Notation - объектная нотация JavaScript). Вместо передачи XML-кода между клиентом и сервером обычно применяется формат JSON, который требует меньше данных и оптимизирован под JavaScript. Предлагаемая Microsoft реализация Ajax называется ASP.NET AJAX и состоит из клиентской библиотеки JavaScript и использующих ее серверных элементов ASPNET. В отличие от версии ASPNET 2.0, в которой библиотеку и элементы управления ASP.NET AJAX требовалось загружать отдельно, в версии ASP.NET 3.5 библиотека ASP.NET AJAX уже входит в основной состав, так что ею можно начинать пользоваться в любой момент. Microsoft предлагает еще кое-какие дополнительные наборы инструментальных средств, которые могут быть полезны при разработке приложения ASP.NET AJAX. □ ASP.NET AJAX Control Toolkit. Разработанный при участии сообщества разработчиков набор, в состав которого входит несколько элементов управления для расширения возможностей Web-страниц. Как им пользоваться, будет показано в последнем разделе настоящей главы. а Microsoft ASP.NET 3.5 Extensions Preview. В этом наборе предлагаются предварительные версии функциональных возможностей, которые, вероятно, будут доступны в будущей версии ASP.NET. Загрузить эти наборы можно по адресу http: а j ах. asp. net. Серверные элементы управления, которые можно использовать в приложениях ASPNET, перечислены в табл. 22. L Вместо серверных элементов управления можно также и напрямую использовать функции JavaScript. Имена соответствующих классов и методов очень похожи на имена классов и методов в .NET Framework, что позволит сразу же чувствовать себя как дома . Некоторые из расширений клиентских сценариев ASP.NET AJAX описаны в табл. 22.2. Таблица 22.1. Серверные элементы управления, которые можно использовать в приложениях ASP.NET
Таблица 22.2. Расширения клиентскихсценариев ASP.NET AJAX Расширения клиентских сценариев Описание Racшиpeния типа Array Racшиpeния типа Date Racшиpeния типа string Пространство имен Sys Пространство имен Sys. Net Библиотека клиентских сценариев добавляет функции в JavaScript-тип Array. Методы, вроде add (), addRange(), clear (),contains (),insert () и remove О очень похожи на методы .NET-типа Array Библиотека клиентских сценариев добавляет функции в JavaScript-тип Date. С помощью метода format МОЖНО передавать форматирующие строки, подобные тем, что применяются вместе с .NET-струк-турой DateTime Библиотека клиентских сценариев добавляет функции в JavaScript-тип string. В число доступных здесь методов входят startsWith (), endsWith (), trim о И trimEnd О В пространстве имен sys доступен класс stringBuilder, который ПОХОЖ на класс stringBuilder, предлагаемый в .NET Еще в нем доступен класс Application, который предоставляет возможность работать с такими глобальными клиентскими событиями, как init, load и unload В состав пространства имен Sys.Net входят классы, которые можно использовать в клиентском сценарии для вызова Web-служб Теперь давайте посмотрим, как использовать возможности ASP.NET AJAX в приложениях ASP.NET, начиная с возможности частичного визуального обновления Web-страницы. Элемент управления UpdatePanel В следующем практическом занятии демонстрируется создание простой Web-страницы, подразумевающей использование такого элемента управления ASP.NET, как UpdatePanel. Практическое занятие Использовэние элемента управления UpdatePanel 1. Создайте новый Web-сайт, выбрав в меню File (Файл) пункта New Web Site (Создать новый Web-сайта) и щелкнув на значке ASP.NET Web Site (Web-сайт ASP.NET). Присвойте новому сайту имя AJAXWebsite. 2. Добавьте новую Web-форму по имени Update Panel Demo. aspx и сделайте ее стартовой страницей приложения. 3. Из категории AJAX Extensions (Расширения AJAX) в окне Toolbox (Элементы управления) добавьте на эту страницу элемент управления ScriptManager: <asp:ScriptManager ID= ScriptManagerl runat= server > </asp:ScriptManager> 4. Затем добавьте элемент управления UpdatePanel: <asp:UpdatePanel ID= UpdatePanell runat= server > </asp:UpdatePanel> 5. Теперь добавьте по одному элементу управления Label и Button внутрь UpdatePanel и по одному элементу управления Label и Button за его пределами. Установите для свойства Text элемента управления Button, находящегося внутри UpdatePanel, и находящегося за его пределами, соответственно значение AJAX Postback и ASP.NET Postback (рис. 22.1). <form id= forml runat= server > <div> <asp:ScriptManager ID= ScriptManagerl runat= server > </asp:ScriptManager> </div> <asp:UpdatePanel ID= UpdatePanell runat= server > <ContentTeinplate> <asp:Label ID= Labell runat= server Text= Label > </asp:Label> <asp:Button ID= Buttonl runat= server Text= AJAX Postback /> </ContentTeinplate > </asp:UpdatePanel > <asp:Label ID= Label2 runat= server Text= Label > </asp:Label> <asp:Button ID= Button2 runat= server Text= ASP.NET Postback /> </form> 6. Назначьте обеим кнопкам обработчик событий Click с именем OnButtonClick и реализуйте его показанным ниже образом: protected void OnButtonClick(object sender, EventArgs e) { Labell.Text = DateTime.Now.ToLongTimeString(); Label2.Text = DateTime.Now.ToLongTimeString();
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |