ASP.NET AJAX 概述

使用 ASP.NET 中的 AJAX 功能可快速創建包含具有響應能力且熟悉的用戶界面 (UI) 元素的網頁,以提供豐富的用戶體驗。AJAX 功能包括客戶端腳本庫,這些庫將跨瀏覽器的 ECMAScript (JavaScript) 和動態的 HTML (DHTML) 技術結合在一起,並與基於 ASP.NET 服務器的開發平臺集成。通過使用 AJAX 功能,可以改進用戶體驗並提高 Web 應用程序的效率。

  1. 爲什麼使用asp.net ajax

 

使用 ASP.NET 中的 AJAX 功能,可以生成豐富的 Web 應用程序。與完全基於服務器的 Web 應用程序相比,這些應用程序具有很多優點。支持 AJAX 的應用程序可以提供:

  • 增強的效率,因爲網頁的大部分處理工作是在瀏覽器中執行的。

  • 熟悉的 UI 元素,如進度指示器、工具提示和彈出窗口。

  • 部分頁更新,只刷新已發生更改的網頁部分。

  • 客戶端與用於 Forms 身份驗證的 ASP.NET 應用程序服務、角色和用戶配置文件的集成。

  • 自動生成的代理類,可簡化從客戶端腳本調用 Web 服務方法的過程。

  • 一個框架,可讓您自定義服務器控件以包含客戶端功能。

  • 對大部分流行的和常用的瀏覽器的支持,其中包括 Microsoft Internet Explorer、Mozilla Firefox 和 Apple Safari。
    ASP.NET 中的 AJAX 功能的結構


    ASP.NET 中的 AJAX 功能結構由兩部分組成:客戶端腳本庫和服務器組件。這兩個組成部分集成在一起以提供可靠的開發框架。

    說明:

    除 ASP.NET 中的 AJAX 功能之外,還可以使用 ASP.NET AJAX 控件工具箱和 Microsoft ASP.NET 將來版本中的功能,它們都受社區支持。

    下圖顯示客戶端腳本庫和服務器組件中包含的功能。

    ASP.NET AJAX 客戶端和服務器結構

    ASP.NET AJAX 服務器和客戶端體系結構

    此圖顯示了基於客戶端的 Microsoft AJAX Library 的功能,其中包含對創建客戶端組件、瀏覽器兼容性以及網絡和核心服務的支持。還顯示了基於服務器的 AJAX 特性的功能,其中包括腳本支持、Web 服務、應用程序服務和服務器控件。以下各節對此圖進行了更詳細的描述。
    AJAX 客戶端結構


    客戶端結構包括用於組件支持、瀏覽器兼容性、網絡和核心服務的庫。

    組件

    客戶端組件在服務器中啓用豐富的行爲,而不需要回發。這些組件分爲三個類別:

    • 組件,這些組件是封裝代碼的非可視對象(如計時器對象)。

    • 行爲,這些行爲可擴展現有 DOM 元素的基本行爲。

    • 控件,這些控件表示具有自定義行爲的新的 DOM 元素。

    使用的組件類型取決於所需的客戶端行爲的類型。例如,可使用附加到現有文本框的行爲創建該文本框的水印。有關更多信息,請參見創建客戶端組件和控件

    瀏覽器兼容性

    瀏覽器兼容性層爲最常用的瀏覽器(包括 Microsoft Internet Explorer、Mozilla Firefox 和 Apple Safari)提供 AJAX 腳本兼容性。這將使您能夠針對各種受支持的服務器編寫相同的腳本。有關更多信息,請參見支持 AJAX 的 ASP.NET 頁面的瀏覽器安全設置

    網絡

    網絡層將處理瀏覽器中的腳本與基於 Web 的服務和應用程序之間的通信,還將管理異步遠程方法調用。在許多常見方案中(如使用 UpdatePanel 控件的部分頁更新),將自動使用網絡層而無需編寫任何代碼。

    網絡層還提供對在客戶端腳本中訪問基於服務器的 Forms 身份驗證、角色信息和配置文件信息的支持。只要應用程序具有對 Microsoft AJAX Library 的訪問權,在不是使用 ASP.NET 創建的 Web 應用程序中也可獲得此支持。有關更多信息,請參見 ASP.NET AJAX 中的 Web 服務

    核心服務

    ASP.NET 中的 AJAX 客戶端腳本庫由 JavaScript (.js) 文件組成,這些文件提供用於面向對象的開發的功能。包含在 ASP.NET AJAX 客戶端腳本庫中的面向對象的功能在客戶端腳本中啓用高級別的一致性和模塊化。下面的核心服務是客戶端結構的一部分:

    • 針對 JavaScript 的面向對象的擴展,如類、命名空間、事件處理程序、繼承、數據類型和對象序列化。

    • 一個基類庫,其中包含字符串生成器和擴展的錯誤處理這樣的組件。

    • 對 JavaScript 庫的支持,這些庫會嵌入到程序集中或作爲單獨的 JavaScript (.js) 文件提供。在程序集中嵌入 JavaScript 庫可以使部署應用程序更容易,並有助於解決版本問題。

    • 有關更多信息,請參見使用 Microsoft AJAX Library 創建自定義客戶端腳本

    調試和錯誤處理

    核心服務包括 Sys.Debug 類,此類提供用於在網頁的末尾以可讀形式顯示對象的方法。該類還顯示跟蹤消息,使您能夠斷言,並讓您可以中斷至啓動調試器。一個擴展的 Error 對象 API 將提供有用的異常詳細信息,並支持發佈和調試模式。有關更多信息,請參見 調試和跟蹤 AJAX 應用程序概述

    全球化

    ASP.NET 中的 AJAX 服務器和客戶端結構提供用於本地化和全球化客戶端腳本的模型。這將使您能夠設計使用單個代碼庫爲多個區域設置(語言和區域性)提供 UI 的應用程序。例如,AJAX 結構使 JavaScript 代碼能夠根據用戶瀏覽器的區域設置自動爲 DateNumber 對象設置格式,而無需回發到服務器。有關更多信息,請參見演練:使用客戶端腳本全球化日期
    AJAX 客戶端結構


    客戶端結構包括用於組件支持、瀏覽器兼容性、網絡和核心服務的庫。

    組件

    客戶端組件在服務器中啓用豐富的行爲,而不需要回發。這些組件分爲三個類別:

    • 組件,這些組件是封裝代碼的非可視對象(如計時器對象)。

    • 行爲,這些行爲可擴展現有 DOM 元素的基本行爲。

    • 控件,這些控件表示具有自定義行爲的新的 DOM 元素。

    使用的組件類型取決於所需的客戶端行爲的類型。例如,可使用附加到現有文本框的行爲創建該文本框的水印。有關更多信息,請參見創建客戶端組件和控件

    瀏覽器兼容性

    瀏覽器兼容性層爲最常用的瀏覽器(包括 Microsoft Internet Explorer、Mozilla Firefox 和 Apple Safari)提供 AJAX 腳本兼容性。這將使您能夠針對各種受支持的服務器編寫相同的腳本。有關更多信息,請參見支持 AJAX 的 ASP.NET 頁面的瀏覽器安全設置

    網絡

    網絡層將處理瀏覽器中的腳本與基於 Web 的服務和應用程序之間的通信,還將管理異步遠程方法調用。在許多常見方案中(如使用 UpdatePanel 控件的部分頁更新),將自動使用網絡層而無需編寫任何代碼。

    網絡層還提供對在客戶端腳本中訪問基於服務器的 Forms 身份驗證、角色信息和配置文件信息的支持。只要應用程序具有對 Microsoft AJAX Library 的訪問權,在不是使用 ASP.NET 創建的 Web 應用程序中也可獲得此支持。有關更多信息,請參見 ASP.NET AJAX 中的 Web 服務

    核心服務

    ASP.NET 中的 AJAX 客戶端腳本庫由 JavaScript (.js) 文件組成,這些文件提供用於面向對象的開發的功能。包含在 ASP.NET AJAX 客戶端腳本庫中的面向對象的功能在客戶端腳本中啓用高級別的一致性和模塊化。下面的核心服務是客戶端結構的一部分:

    • 針對 JavaScript 的面向對象的擴展,如類、命名空間、事件處理程序、繼承、數據類型和對象序列化。

    • 一個基類庫,其中包含字符串生成器和擴展的錯誤處理這樣的組件。

    • 對 JavaScript 庫的支持,這些庫會嵌入到程序集中或作爲單獨的 JavaScript (.js) 文件提供。在程序集中嵌入 JavaScript 庫可以使部署應用程序更容易,並有助於解決版本問題。

    • 有關更多信息,請參見使用 Microsoft AJAX Library 創建自定義客戶端腳本

    調試和錯誤處理

    核心服務包括 Sys.Debug 類,此類提供用於在網頁的末尾以可讀形式顯示對象的方法。該類還顯示跟蹤消息,使您能夠斷言,並讓您可以中斷至啓動調試器。一個擴展的 Error 對象 API 將提供有用的異常詳細信息,並支持發佈和調試模式。有關更多信息,請參見 調試和跟蹤 AJAX 應用程序概述

    全球化

    ASP.NET 中的 AJAX 服務器和客戶端結構提供用於本地化和全球化客戶端腳本的模型。這將使您能夠設計使用單個代碼庫爲多個區域設置(語言和區域性)提供 UI 的應用程序。例如,AJAX 結構使 JavaScript 代碼能夠根據用戶瀏覽器的區域設置自動爲 DateNumber 對象設置格式,而無需回發到服務器。有關更多信息,請參見演練:使用客戶端腳本全球化日期

    支持 AJAX 開發的服務器模塊由管理應用程序的 UI 和流的 ASP.NET Web 服務器控件和組件組成。這些服務器模塊還管理序列化、驗證、控件擴展性等等。還有一些 ASP.NET Web 服務使您能夠允許訪問用於 Forms 身份驗證、角色和用戶配置文件的 ASP.NET 應用程序服務。

    腳本支持

    通過使用從服務器發送到客戶端的支持腳本,可實現 ASP.NET 中的 AJAX 功能。根據啓用的 AJAX 功能,會將不同的腳本發送到瀏覽器。

    還可以爲 ASP.NET 應用程序創建自定義客戶端腳本。在這種情況下,還可以使用 AJAX 功能來管理作爲靜態 .js 文件(磁盤上)或作爲資源嵌入到程序集中的 .js 文件的自定義腳本。

    ASP.NET AJAX 功能包括一個用於發佈模式和調試模式的模型。發佈模式提供錯誤檢查和異常處理,並針對性能進行了優化,同時使用最少量的腳本。調試模式提供更可靠的調試功能,如類型和參數檢查。當應用程序處於調試模式時,ASP.NET 將運行調試版本。這將使您能夠在調試腳本中引發異常,同時保持最少數量的發佈代碼。

    對 ASP.NET 中的 AJAX 的腳本支持可用於提供兩個重要功能:

    本地化

    ASP.NET AJAX 結構以 ASP.NET 2.0 本地化模型爲基礎進行構建。它提供對嵌入到程序集中的或在磁盤上提供的本地化 .js 文件的其他支持。ASP.NET 可以自動針對特定語言和區域提供本地化的客戶端腳本和資源。

    有關更多信息,請參見下列主題:

    Web 服務

    藉助 ASP.NET 網頁中的 AJAX 功能,可以使用客戶端腳本來調用 ASP.NET Web 服務 (.asmx) 和 Windows Communication Foundation (WCF) 服務 (.svc)。請求的腳本引用將自動添加到頁,隨後它們會自動生成 Web 服務代理類,您可以從客戶端腳本使用這些類來調用 Web 服務。

    也可以訪問 ASP.NET Web 服務,而無需使用 ASP.NET AJAX 服務器控件(例如,如果使用其他 Web 開發環境)。爲此,可通過手動在頁中包括對 Microsoft AJAX Library、腳本文件和 Web 服務本身的引用。在運行時,ASP.NET 將生成可用於調用這些服務的代理類。有關更多信息,請參見 ASP.NET AJAX 中的 Web 服務

    應用程序服務

    ASP.NET 中的應用程序服務是基於 ASP.NET Forms 身份驗證、角色和用戶配置文件的內置 Web 服務。這些服務可由支持 AJAX 的網頁中的客戶端腳本、Windows 客戶端應用程序或 WCF 兼容的客戶端調用。有關信息和示例,請參見使用 ASP.NET Web 服務

    服務器控件

    ASP.NET AJAX 服務器控件由服務器和客戶端代碼組成,這些代碼集成在一起可生成豐富的客戶端行爲。當您將 AJAX 控件添加到 ASP.NET 網頁上時,該頁會自動將支持的客戶端腳本發送到瀏覽器以獲取 AJAX 功能。可以提供其他的客戶端代碼來自定義控件的功能,但這不是必需的。

    以下列表描述最常使用的 ASP.NET AJAX 服務器控件。

    ScriptManager

    管理客戶端組件、部分頁呈現、本地化、全球化和自定義用戶腳本的腳本資源。若要使用 UpdatePanelUpdateProgressTimer 控件,則需要 ScriptManager 控件。

    UpdatePanel

    使您能夠刷新頁的選定部分,而不是使用同步回發來刷新整個頁面。

    UpdateProgress

    提供有關 UpdatePanel 控件中的部分頁更新的狀態信息。

    Timer

    按定義的時間間隔執行回發。可以使用 Timer 控件來發送整個頁,或將其與 UpdatePanel 控件一起使用以按定義的時間間隔執行部分頁更新。

    還可以創建包含 AJAX 客戶端行爲的自定義 ASP.NET 服務器控件。用於增強其他 ASP.NET Web 控件功能的自定義控件稱爲“擴展程序控件”。有關更多信息,請參見 向 ASP.NET 控件添加 AJAX 功能ASP.NET AJAX 擴展程序控件概述

    AJAX 控件工具箱


    ASP.NET AJAX 控件工具箱是示例和組件的集合,這些示例和組件演示一些可使用 ASP.NET AJAX 控件和擴展程序創建的體驗。控件工具箱提供了一些示例和功能強大的 SDK,這將使創建和重用自定義控件及擴展程序變得很簡單。可以從 ASP.NET Ajax 網站下載 ASP.NET AJAX 控件工具包。ASP.NET AJAX 控件工具箱是受社區支持的。

    ASP.NET AJAX 社區支持的將來版本提供了一些功能,這些功能將使用正處於開發階段且 ASP.NET 中未包含的功能來擴展 ASP.NET 的 AJAX 功能。這包括其他擴展程序控件、對客戶端聲明性語法 (xml-script) 的支持等等。若要下載並瞭解有關將來版本的更多信息,請訪問網站 ASP.NET AJAX

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章