共用方式為


ASP.NET AJAX 概觀

更新:2007 年 11 月

ASP.NET 中的 AJAX 功能可讓您使用反應靈敏和熟悉的使用者介面 (UI) 項目,快速建立包含豐富使用者經驗的 Web 網頁。AJAX 功能包含用戶端指令碼程式庫,融合了跨瀏覽器 ECMAScript (JavaScript) 和動態 HTML (DHTML) 技術,且與 ASP.NET 伺服器架構開發平台整合。您可以使用 AJAX 功能來改善使用者經驗和 Web 應用程式的效率。

使用 ASP.NET AJAX 功能的原因

ASP.NET 中的 AJAX 功能可讓您建置 (Build) 豐富的 Web 應用程式,這種應用程式有許多優點勝過完全以伺服器為基礎的 Web 應用程式。具備 AJAX 能力的應用程式提供:

  • 效率提升,因為絕大部分的 Web 網頁處理都在瀏覽器中執行。

  • 熟悉的 UI 項目,例如進度列指示器、工具提示和快顯視窗 (Pop-Up Window)。

  • 網頁局部更新,只會重新整理變更的 Web 網頁部分。

  • 用戶端與 ASP.NET 應用程式服務整合,包含表單驗證、角色和使用者設定檔。

  • 自動產生 Proxy 類別,簡化從用戶端指令碼呼叫 Web 服務方法的過程。

  • 可讓您自訂伺服器控制項來包含用戶端功能的架構。

  • 支援最常見和最常用的瀏覽器,包括 Microsoft Internet Explorer、Mozilla Firefox 和 Apple Safari。

ASP.NET 中的 AJAX 功能架構

ASP.NET 中的 AJAX 功能架構由兩個部分組成:用戶端指令碼程式庫和伺服器元件。這兩個部分已整合,可提供完整的開發架構。

注意事項:

除了 ASP.NET 中的 AJAX 功能以外,您還可以使用 ASP.NET AJAX Control Toolkit 和 Microsoft ASP.NET Futures 版本中的功能,兩者都有社群支援。

下圖顯示用戶端指令碼程式庫和伺服器元件包含的功能。

ASP.NET AJAX 用戶端和伺服器架構

上圖顯示用戶端架構 Microsoft AJAX Library 的功能,包含建立用戶端元件、瀏覽器相容性,以及網路和核心服務的支援。上圖也顯示伺服器架構 AJAX 的功能,包含指令碼支援、Web 服務、應用程式服務和伺服器控制項。下列章節詳細描述了上圖。

AJAX 用戶端架構

用戶端架構包含元件支援、瀏覽器相容性、網路及核心服務的程式庫。

元件

用戶端元件可讓瀏覽器不需要回傳即可展現豐富的行為。這些元件分為三類:

  • 元件,封裝程式碼的隱藏式物件,例如計時器物件。

  • 行為,延伸現有 DOM 項目的基本行為。

  • 控制項,代表具有自訂行為的新 DOM 項目。

您使用的元件類型視您想要的用戶端行為類型而定。例如,使用附加至現有文字方塊的行為,可以為該文字方塊建立浮水印。如需詳細資訊,請參閱建立用戶端元件和控制項

瀏覽器相容性

瀏覽器相容性層為最常用的瀏覽器 (包括 Microsoft Internet Explorer、Mozilla Firefox 和 Apple Safari) 提供 AJAX 指令碼相容性。不論您以哪一種支援的瀏覽器為目標,所撰寫的指令碼皆相同。如需詳細資訊,請參閱已啟用 AJAX 之 ASP.NET 頁面的瀏覽器安全性設定

網路

網路層處理瀏覽器中的指令碼與 Web 架構的服務和應用程式之間的通訊,也管理非同步遠端方法呼叫。在許多常見的情況中,例如使用 UpdatePanel 控制項的網頁局部更新,會自動使用網路層,您不需要撰寫任何程式碼。

網路層也支援在用戶端指令碼中存取伺服器架構表單驗證、角色資訊和設定檔資訊。即使 Web 應用程式不是使用 ASP.NET 建立,只要應用程式可以存取 Microsoft AJAX Library,也適用這項支援。如需詳細資訊,請參閱 ASP.NET AJAX 中的 Web 服務

核心服務

ASP.NET 中的 AJAX 用戶端指令碼程式庫是由 JavaScript (.js) 檔案組成,這些檔案提供物件導向開發的功能。ASP.NET AJAX 用戶端指令碼程式庫包含的物件導向功能,可讓用戶端指令碼達到相當高的一致性和模組化程度。下列核心服務是用戶端架構的一部分:

  • JavaScript 的物件導向擴充功能,例如類別、命名空間 (Namespace)、事件處理、繼承、資料型別和物件序列化。

  • 基底類別程式庫,包括字串產生器和擴充錯誤處理等元件。

  • 支援內嵌在組件中或以獨立 JavaScript (.js) 檔案提供的 JavaScript 程式庫。將 JavaScript 程式庫內嵌在組件中,可以更輕鬆地部署應用程式和協助解決版本控制問題。

  • 如需詳細資訊,請參閱使用 Microsoft AJAX Library 建立自訂用戶端指令碼

偵錯和錯誤處理

核心服務包含 Sys.Debug 類別,這個類別提供在 Web 網頁結尾以可閱讀的格式顯示物件的方法。這個類別也會顯示追蹤訊息,讓您可以使用判斷提示 (Assertion) 和中斷偵錯工具。延伸的 Error 物件 API 提供實用的例外狀況詳細資料,並支援發行和偵錯模式。如需詳細資訊,請參閱偵錯和追蹤 AJAX 應用程式概觀

全球化

ASP.NET 的 AJAX 伺服器和用戶端架構提供一個模型,可讓您將用戶端指令碼當地語系化和全球化。這可讓您設計使用單一程式碼基底 (Code Base) 的應用程式,以提供許多地區設定 (語言和文化特性) 的 UI。例如,AJAX 架構可讓 JavaScript 程式碼根據使用者瀏覽器的文化特性設定,將 DateNumber 物件自動格式化,而不需要回傳至伺服器。如需詳細資訊,請參閱逐步解說:使用用戶端指令碼將日期全球化

AJAX 伺服器架構

支援 AJAX 開發的伺服器部分是由 ASP.NET Web 伺服器控制項和管理應用程式 UI 和流程的元件組成。伺服器部分也管理序列化、驗證和控制項擴充性等。另外,也有 ASP.NET Web 服務可讓您存取 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 Web 網頁中的 AJAX 功能,您可以使用用戶端指令碼呼叫 ASP.NET Web 服務 (.asmx) 和 Windows Communication Foundation (WCF) 服務 (.svc)。必要的指令碼參考會自動加入至網頁,然後再自動產生 Web 服務 Proxy 類別,供您在用戶端指令碼中用來呼叫 Web 服務。

您也可以直接存取 ASP.NET Web 服務,不需要使用 ASP.NET AJAX 伺服器控制項 (例如,如果使用不同的 Web 開發環境)。作法是在網頁中手動加入 Microsoft AJAX Library 的參考、指令碼檔的參考和 Web 服務本身的參考。在執行階段,ASP.NET 會產生可用來呼叫服務的 Proxy 類別。如需詳細資訊,請參閱 ASP.NET AJAX 中的 Web 服務

應用程式服務

ASP.NET 中的應用程式服務是內建的 Web 服務,以 ASP.NET 表單驗證、角色和使用者設定檔為基礎。這些服務可由具備 AJAX 能力之 Web 網頁中的用戶端指令碼、Windows 用戶端應用程式或 WCF 相容用戶端呼叫。如需相關資訊和範例,請參閱使用 ASP.NET Web 服務.

伺服器控制項

ASP.NET AJAX 伺服器控制項是由伺服器和用戶端程式碼組成,兩者整合以產生豐富的用戶端行為。將 AJAX 控制項加入至 ASP.NET Web 網頁後,網頁會自動將支援的用戶端指令碼傳送至瀏覽器,以執行 AJAX 功能。您可以提供其他用戶端程式碼來自訂控制項的功能,但這不是必要的。

下列清單描述最常用的 ASP.NET AJAX 伺服器控制項。

  • ScriptManager
    管理用戶端元件、網頁局部呈現、當地語系化、全球化和自訂使用者指令碼的指令碼資源。需要有 ScriptManager 控制項,才能使用 UpdatePanelUpdateProgressTimer 控制項。

  • UpdatePanel
    可讓您重新整理選取的網頁部分,不必以同步回傳重新整理整個網頁。

  • UpdateProgress
    提供有關 UpdatePanel 控制項中網頁局部更新的狀態資訊。

  • Timer
    以定義的間隔執行回傳。您可以使用 Timer 控制項張貼整個網頁,或與 UpdatePanel 控制項一起使用,以定義的間隔執行網頁局部更新。

您也可以建立包含 AJAX 用戶端行為的自訂 ASP.NET 伺服器控制項。增強其他 ASP.NET Web 控制項功能的自訂控制項稱為「擴充項控制項」(Extender Control)。如需詳細資訊,請參閱 將 AJAX 功能加入至 ASP.NET 控制項ASP.NET AJAX 擴充項控制項概觀

AJAX Control Toolkit

ASP.NET AJAX Control Toolkit 是範例和元件的集合,顯示可以使用 ASP.NET AJAX 控制項和擴充項建立的一些經驗。Control Toolkit 提供範例和功能強大的 SDK,可簡單建立和重複使用自訂的控制項和擴充項。您可以從 ASP.NET Ajax 網站下載 ASP.NET AJAX Control Toolkit。ASP.NET AJAX Control Toolkit 有社群支援。

AJAX 社群支援 Futures 版本

ASP.NET AJAX 社群支援 Futures 版本提供的功能,以仍在開發中且 ASP.NET 未包含的功能來擴充 ASP.NET 的 AJAX 功能。這包含了其他擴充項控制項、用戶端宣告式語法 (xml-script) 等。若要下載和進一步了解 Futures 版本,請參閱 ASP.NET AJAX 網站。

請參閱

概念

已啟用 AJAX 之 ASP.NET 頁面的瀏覽器安全性設定

將 AJAX 功能加入至 ASP.NET 控制項