程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> .NET實例教程 >> ASP.NET 2.0當中的Call back技術與ASP.NET AJAX

ASP.NET 2.0當中的Call back技術與ASP.NET AJAX

編輯:.NET實例教程

前面介紹過了幾個ASP.Net當中的AJax機制之後,不知道讀者是否偶而也有一些confuse,原因是有太多種方法可以在.ASPx網頁上進行AJax動作了,目前最常見的幾種方式是:
1) 傳統的HTTP request(要自己寫一些JavaScript code)
2) asp.net 2.0當中的Call Back技術(ASP.Net 2.0當中原生支持,不需要安裝任何套件)
3)安裝ASP.Net AJax套件之後的 異步 Web Services Call
4)安裝ASP.Net AJax套件之後的 異步 Page Method Call
5)安裝ASP.Net AJax套件之後的 UpdatePanel

由於有很多讀者問到,同時也不少人有這方面的爭論或是疑惑,因此筆者分別針對這幾種方式稍做說明。

目前,只要您是ASP.Net的開發人員,我相信你會在2,3,4,5這幾種方法當中選一個,而最常用的可能是方法5。因為方法1這種傳統的Http Request不僅要編寫相當多的JavaScript,並且很可能您要自己處理浏覽器兼容與支持的相關問題,因此一般來說我們不太做這樣的用法。

而其中最簡單的則是方法5, 采用UpdatePanel,但是, 讀者要知道,上述各種AJax技術當中,最耗費頻寬且效率最差的就是UpdatePanel,筆者在研討會常常碰到讀者詢問ASP.Net AJax的效率不好(但是其實只有UpdatePanel的效率不是非常好,而且這還跟使用的方式有關...),因此在這邊筆者要再三強調,僅管你看到 UpdatePanel 所謂的“partial postback” "似乎只是" 將一小塊區域回傳給伺服器端,但是實際測試後你會發現,在進行partial postback時,其實是 "整個頁面" 回傳給伺服器端(只是沒有換頁),而雖然reload回來的時候確實是局部的頁面,但是如果你加上了Timer一起用,肯定會造成可怕的網路流量...

而方法3的異步Web Services呼叫其實是筆者比較喜歡的方式,不管在執行效率或是原理架構上,都是蠻漂亮的AJAX用法,而方法4的PageMethod則是類似於方法3的一種簡易用法,不需要額外建立一個Web Services(.asmx),就可以在頁面當直接使用,是比較輕量級的方式,如果您的頁面上想要畫龍點睛的來一小段AJAX功能,方法4是不錯的選擇,而方法3則可以讓開發人員以正規的方式建立較為龐大的AJAX架構,例如編寫一個AJax版的開發平台,類庫...等

而方法2呢?怎麼越來越少聽到筆者談起?可能有讀者以為ASP.Net AJAX出現之後我們就把它拋在一邊了,其實這個觀念不是非常的正確,您會發現Call Back技術依舊是目前 "編寫支持AJax功能的Web控件" 最好的方式...

可能筆者提的很少,但是其實是因為台灣現在寫控件的人越來越少了,您若深入研究就會發現,ASP.Net 2.0當中的Call Back機制不僅可以用在網頁上,也可以用在User Control和Web control,可以讓頁面(或控件)直接支持AJAX功能,是非常好用且筆者非常喜歡的一種做法,如果你的開發團隊當中,需要自行開發控件,而這些控件想要支持AJax,Call Back技術是最理想的選擇...

而Extender Control呢?它不是也能來編寫控件嗎?呵呵,沒錯,不過這又是另一個層面的問題了,也許下次有機會時後再跟大家報告一下這中間的差異... 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved