ASP.NET 2.0當中的Call back技術與ASP.NET AJAX
前面介紹過了幾個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呢?它不是也能來編寫控制元件嗎?呵呵,沒錯,不過這又是另一個層面的問題了,也許下次有機會時後再跟大家報告一下這中間的差異...
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1926581
相關文章
- ASP.NET 2.0當中的Call Back機制ASP.NET
- 【Henry Liu】ASP.NET 2.0 中的URL 重寫技術ASP.NET
- ASP.NET 2.0中XSLT的使用ASP.NET
- ASP.NET AJAX中的非同步PageMethod呼叫ASP.NET非同步
- ASP.NET AJAX 是ASP.NET 3.5 才引入的ASP.NET
- ASP.NET 使用AjaxASP.NET
- feed back 和 mail/call me backAI
- ASP.NET 2.0 中的資料訪問ASP.NET
- ASP.NET AJAX中的非同步Web Services呼叫ASP.NET非同步Web
- Asp.Net中ajax+aspx使用詳解ASP.NET
- Asp.Net中ajax+ashx使用詳解ASP.NET
- Asp.Net MVC 使用 AjaxASP.NETMVC
- AJAX Panels with ASP.NET MVCASP.NETMVC
- ASP.NET MVC 之 AJAXASP.NETMVC
- ASP.NET MVC和AJAXASP.NETMVC
- ASP.NET 2.0中連線字串的設定ASP.NET字串
- ASP.NET 2.0中XML資料的處理ASP.NETXML
- ASP.NET中的AJAX應用開發總結ASP.NET
- 【jackyrong 】asp.net 2.0中 updatepannel(1)ASP.NET
- 【趙劼】分清ASP.NET AJAX中的Extender和Behavior模型ASP.NET模型
- ASP.NET 2.0中的頁面輸出快取ASP.NET快取
- AJAX基於ASP.NET MVCASP.NETMVC
- Asp.net Ajax 註冊框架ASP.NET框架
- ASP.NET 調味品:AJAXASP.NET
- ASP.NET 2.0 加密 CookiesASP.NET加密Cookie
- ASP.NET 2.0快取ASP.NET快取
- ASP.NET 的MVC結構之AJAXASP.NETMVC
- 【聖炎¢天樂】ASP.NET 2.0中的成員管理與角色管理ASP.NET
- Asp.net 2.0三層架構的構建與理解ASP.NET架構
- Spread for ASP.NET技術白皮書ASP.NET
- .NET 3.5和VS 2008中的ASP.NET AJAXASP.NET
- 【輝郎】理解ASP.NET 2.0中的單點登入ASP.NET
- Asp.net web框架Nancy的技術文章整理ASP.NETWeb框架NaN
- 小議ASP.NET模板引擎技術的使用ASP.NET
- ASP.NET Core 2.0 支付寶當面付之掃碼支付ASP.NET
- ajax的post請求,用於asp.net ?ASP.NET
- 剖析ASP.NET AJAX的物件導向思想ASP.NET物件
- .NET平臺系列25:從 ASP.NET 遷移到 ASP.NET Core 的技術指南ASP.NET