用 ASP.NET Callback 和 JavaScript 高速訪問資料庫

來源:互聯網
上載者:User

透過 ASP.NET 的 Client Callback 技術,可讓 JavaScript 和 .NET 直接作溝通,並以遠遠遠遠快於 UpdatePanel 控制項的速度,高速執行 Web 應用程式。本帖提供一個 ASP.NET Callback 的樣本下載,僅用極少的代碼,實作類別似 Google 的即時關鍵詞查詢,且效能超優,程式的響應速度有如 JavaScript 般地快速。

看到本帖的摘要,您可能會覺得 Callback 技術相當驚人,確實,其資料轉送量、執行速度,都遠遠比 ASP.NET AJAX 的 UpdatePanel 控制項要優秀。若您用一些網路監控工具觀察 ,會看到在許多情況下,Callback 在網路中傳送的資料量,甚至比 UpdatePanel 控制項要少了數十倍甚至上百倍。

但 Callback 是 ASP.NET 2.0 就已推出的舊技術,甚至可說它只是在微軟 AJAX Framework 出來前的一套過渡技術。其功能及函數極有限,因此並不適合開發較複雜的應用。因此就開發方便性而言,其遠不如 ASP.NET AJAX 控制項,以及 UpdatePanel 控制項來得方便。但不可否認的,在某些應用較單純,且需要高效能、快速響應的頁面,Callback 仍是相當不錯的選擇。

本帖提供兩個簡易樣本下載,第一個樣本,可在 TextBox 的 OnBlur、OnKeyup 等 JavaScript 事件被觸發時,查詢 SQL Server,且 Onkeyup 可達成如同 Google 般的即時 key-in 查詢效果;第二個樣本,則改成透過 Button Click 才會查詢資料庫。

-------------------------------------------------
本帖的範例程式碼下載點:
http://files.cnblogs.com/WizardWu/090208.zip

(執行本樣本,需要 SQL Server 的 Northwind 資料庫,以及 IIS 或 VS 2008)
-------------------------------------------------

 


圖 1 一離開 TextBox 時 (OnBlur),會用極快的速度查詢資料庫

 

如同版工在之前的「網站效能越來越差怎麼辦? 」一文,以及下面這篇文章所提到的:

UpdatePanel 提示和技巧 (MSDN Magazine, 2007/6):
http://msdn.microsoft.com/zh-cn/magazine/cc163413.aspx

微軟為了達成 AJAX 的使用方便性,而犧牲了許多效能,讓 UpdatePanel 控制項運作得相關沒有效率,因其用 ViewState 儲存了大量的頁面狀態。反觀 Callback 技術雖然速度快 ,網路傳輸量遠比 UpdatePanel 控制項少,但其缺點為功能過於陽春、開發不便;且版工我還發現一個缺點,就是在其 RaiseCallbackEvent 方法中,會讓 Response.Write、 JavaScript 的 alert 失效,導致捕捉到的錯誤資訊,無法顯示在頁面上讓程式員和使用者知道。

另聽說在 ASP.NET 4.0 時,UpdatePanel 控制項的 Render 方式會有新的改進,可以只 Render 特定的頁面欄位值,會比 Partial Rendering 聚焦到更小的區塊。在這之前,若您的頁面需要以特優的效能實現簡單的功能,如本帖的樣本,Callback 仍是個不錯的選擇。

 

 

--------------------------------------------------

參考檔案:

[1] ICallbackEventHandler 介面
http://msdn.microsoft.com/zh-cn/library/system.web.ui.icallbackeventhandler(VS.80).aspx
http://msdn.microsoft.com/zh-cn/library/system.web.ui.icallbackeventhandler_members(VS.80).aspx

[2] 董大偉、奚江華等人寫的 ASP.NET 2.0 書籍

[3] CallBack 與 UpdatePanel 的效能比較
http://www.cnblogs.com/jeff377/archive/2007/12/09/988347.html

[4] 網路檔案

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.