Asp.Net 2.0已經(jīng)發(fā)布。2.0有了許多新特性,客戶(hù)端回調(diào)就是其中之一。客戶(hù)端回調(diào)允許我們不經(jīng)過(guò)回發(fā)而調(diào)用服務(wù)器端的方法,與AJAX提供的功能是一致的,但是不如AJAX靈活,AJAX可以自定義調(diào)用的方法,2.0自帶的回調(diào)功能卻不行。要使用客戶(hù)端回調(diào)功能必須實(shí)現(xiàn)System.Web.UI.IcallbackEventHandler接口。
這個(gè)接口包含兩個(gè)方法
//客戶(hù)端回調(diào)時(shí)固定調(diào)用此方法 public void RaiseCallbackEvent(String eventArgument) //執(zhí)行完RaiseCallbackEvent后將調(diào)用此方法。此方法的返回值將被發(fā)回客戶(hù)端 public string GetCallbackResult() 例: .cs: String cbReference = Page.ClientScript.GetCallbackEventReference( this,"arg", "ReceiveServerData", "context"); String callbackScript; callbackScript = "function CallServer(arg, context)" + "{ " + cbReference + "} ;"; Page.ClientScript.RegisterClientScriptBlock( this.GetType(),"CallServer", callbackScript, true); javascript: |
AJAX并不是一種新的技術(shù),而是一些已有技術(shù)的有機(jī)結(jié)合,主要包括:XmlHttp、Reflect。一個(gè)AJAX框架基本上包括:一個(gè)自定義的HttpHandler、一段JavaScript代碼。
AJAX運(yùn)行機(jī)制
以前我們使用XmlHttp實(shí)現(xiàn)無(wú)刷新頁(yè)面的時(shí)候,是用XmlHttp來(lái)請(qǐng)求一個(gè)隱藏的頁(yè)面,使用(Asp/Asp.Net)自帶的HttpHandler,而在AJAX中,我們請(qǐng)求的也是一個(gè)隱藏的頁(yè)面,不同的是這個(gè)頁(yè)面的HttpHandler是由我們自己來(lái)實(shí)現(xiàn)。
打造自己的AJAX:
1.首先我們要實(shí)現(xiàn)一個(gè)Http處理程序(HttpHandler)來(lái)響應(yīng)客戶(hù)端的請(qǐng)求:
實(shí)現(xiàn)自定義的HttpHandler需要實(shí)現(xiàn)IHttpHandler接口。