部分網頁呈現概觀

呈現部分網頁能讓不必以回傳的結果重新整理整個頁面,而是只更新網頁上已變更的各個區域。這樣使用者就不會在每次回傳時都看到整頁重新載入,而讓使用者與網頁的互動更加順暢。ASP.NET 可讓您在不需撰寫用戶端指令碼的情況下,將部分網頁呈現新增至全新或現有的 ASP.NET 網頁。

案例

您可以擴充現有的 ASP.NET 應用程式,以及開發併入了 AJAX (非同步 JavaScript 與 XML) 功能的新 ASP.NET 應用程式。ASP.NET 中的 AJAX 功能可讓您建置優越的 Web 應用程式,而這類網頁應用程式所具備的許多優點超越了完全以伺服器為主的 Web 應用程式。若想執行下列作業,請使用 AJAX 功能:

  • 改善使用者對於下列幾種網頁的使用經驗:內容比較豐富的網頁、更快回應使用者動作的網頁,以及呈現方式如同傳統用戶端應用程式的網頁。

  • 減少整頁重新整理及避免網頁重繪閃動。

  • 在無須撰寫用戶端指令碼的情況下,達到跨瀏覽器的相容性。

  • 在無須撰寫用戶端指令碼的情況下,執行 AJAX 型用戶端/伺服器通訊。

  • 使用 ASP.NET AJAX 控制項工具組中的控制項與元件。

  • 開發自訂的 ASP.NET AJAX 控制項。

部分網頁呈現功能

部分網頁呈現依賴於 ASP.NET 中的伺服器控制項以及 Microsoft AJAX 程式庫中的用戶端函數。您不必利用 Microsoft AJAX 程式庫啟用部分網頁呈現,因為這項功能會在使用 ASP.NET AJAX 伺服器控制項時自動提供。不過,您可以將用戶端程式庫中公開的 API 用於其他 AJAX 功能。

支援部分網頁呈現的主要 ASP.NET 功能如下:

  • 作用類似於 ASP.NET 伺服器控制項的宣告式模型。在許多案例中,您可以指定只使用宣告式標記的部分網頁呈現。

  • 用以執行部分網頁更新所需基礎工作的伺服器控制項。其中包含 ScriptManager 控制項和 UpdatePanel 控制項。

  • ASP.NET AJAX 伺服器控制項和 Microsoft AJAX 程式庫之間一般工作的整合。這些工作包含讓使用者能夠取消回傳、在非同步回傳期間顯示自訂進度訊息,以及決定並行非同步回傳的處理方式。

  • 部分網頁呈現的錯誤處理選項,讓您能夠自訂在瀏覽器中顯示錯誤的方式。

  • 跨瀏覽器相容性,早已內建於 ASP.NET 的 AJAX 功能中。只要使用伺服器控制項,便會自動叫用正確的瀏覽器功能。

背景

利用 ASP.NET 網頁伺服器控制項所建置的典型網頁,會執行由使用者在網頁上的動作 (例如:按一下按鈕) 所開始進行的回傳。伺服器會在回應時呈現新網頁。通常,這會重新呈現在回傳間未變更的控制項和文字。

使用部分網頁呈現即可以非同步的方式重新整理網頁的各個區域,讓網頁能夠為使用者提供更佳回應。您可以使用 ASP.NET AJAX 網頁伺服器控制項進行部分網頁呈現,也可以撰寫採用 Microsoft AJAX 程式庫之 API 的用戶端指令碼。

部分網頁更新的伺服器控制項

若要將 AJAX 功能新增至 ASP.NET 網頁,您需要指明要進行更新的各網頁區段。然後將這些區段的內容放入 UpdatePanel 控制項中。UpdatePanel 控制項的內容可以是 HTML 或其他 ASP.NET 控制項。您可以將 UpdatePanel 控制項新增至網頁,方式和新增任何其他控制項相同。例如,您可以在 Microsoft Expression Web 中將該控制項從 [工具箱] 工作窗格拖曳到網頁,也可以在網頁的 [程式碼] 檢視中新增該控制項的程式碼,以新增該控制項。

根據預設值,從更新面板 (子控制項) 內之控制項所開始的回傳,會自動開始非同步回傳而造成部分網頁更新。您也可以在更新面板外指定會造成非同步回傳,並重新整理 UpdatePanel 控制項內容的控制項。造成非同步回傳的控制項可視為觸發程序。

非同步回傳的行為很類似同步回傳。所有的伺服器網頁生命週期事件都會發生,而且會保留檢視狀態和表單資料。不過,在呈現階段只有 UpdatePanel 控制項的內容會傳送至瀏覽器。網頁的其餘部分則會維持不變。

若要支援部分網頁呈現,您必須將 ScriptManager 控制項置於網頁上。ScriptManager 控制項會追蹤網頁上所有的更新面板與其觸發程序。它還會協調伺服器上的部分網頁呈現行為,並決定網頁的哪些區段要呈現為非同步回傳的結果。

如需有關部分網頁呈現的詳細資訊,請參閱 MSDN Library 中的部分網頁呈現概觀 (英文)。

請參閱

概念

UpdatePanel 控制項

ScriptManager 控制項

教學課程:如何定時重新整理 UpdatePanel 控制項

教學課程:如何使用兩個獨立更新區域建立網頁