溝通方法 | 前端 | 後端 | 備註 |
PostBack | POST & PostBackOptions Page.ClientScript.GetPostBackEventReference | Page.RegisterRequiresPostBack 繼承自IPostBackEventHandler需實做RaisePostBackEvent 繼承自IPostBackDataHandler需實做LoadPostData和RaisePostDataChangedEvent 註冊事件OnTextChanged | ○:支援控制項開發,傳統做法,簡單有效 ●:每次處理都會造成整頁回傳,畫面會閃動,造成視覺疲勞,眼睛不舒服。 |
CallBack | Page.ClientScript.RegisterClientScriptBlock Page.ClientScript.GetCallbackEventReference Page.ClientScript.RegisterOnSubmitStatement Page.ClientScript.RegisterHiddenField JavaScript物件封裝 | 繼承自ICallbackEventHandler需實做GetCallbackResult與RaiseCallbackEvent 註冊事件OnClientCallBackResult | ○:支援控制項開發,最能夠客製化的方法 ●:要處理所有的細節,因此也最複雜,介面稍有變動,程式需要改很大 |
AJAX之PageMethod | PageMethods物件操作 JavaScript物件封裝 | [System.Web.Services.WebMethod()] 靜態方法 | ○:容易使用 ●:在同一個頁面上使用,限用靜態方法, |
Web Service(.asmx) | (無) | [System.Web.Services.WebMethod()] [System.Web.Script.Services.ScriptService] | ○:可跨平台,利用現有技術,程式較易撰寫 ●:交易處理、安全性與效率不如WCF |
泛型處理常式(.ashx) | GET/POST | 繼承自IHttpHandler 需實作ProcessRequest與IsReusable | ○:可輸出各種MIME文件 ●:只能輸出MIME文件 |
WebClient | WebClient 類別操作與事件處理 | (無) | ○:可取得後端的各種資源(包含二進位資源) ●:非強型別,常透過反射或轉換成需要的物件 |
WCF – http polling | WCFService.ServiceClient() | [ServiceContract] [OperationContract] [DataContract] | ○:目前最方便有效率提供前端資料的方法 ●:只能傳輸文字 |
WCF – net.tcp | ○:可傳輸文字或二進位資料,大量分散式商業模式 ●:? |
沒有留言:
張貼留言