談起客戶端無刷新遠程調用,其好處無需多言。其實現方式除了早些年流行的iframe異步加載外,現在更多的是用基於JavaScript+xmlhttprequest對象技術,比如如日中天的Ajax。而在這裡我們介紹的是ASP.NET本身對客戶端遠程調用的支持--客戶端回調(念diao),當然了,它的本質也是XMLhttprequest。類似的帖子在網上已經被翻爛了,如果嫌這裡說的不過瘾,可以自己動手看看高手們怎麼說。
創建實現客戶端回調的 ASP.NET 頁必須執行以下操作:
·實現 ICallbackEventHandler 接口。可以向任何 ASP.NET 網頁添加此接口聲明。
·實現 RaiseCallbackEvent 接口的方法。此方法將由回調來調用,執行一些邏輯處理。
·實現 GetCallbackResult接口的方法。此方法將向clientCallBack 函數返回一個字符串
注意:實現接口的方法必須為public,否則不能被遠程調用。
此外,該頁還必須包含執行以下操作的三個客戶端腳本函數:
·一個函數調用幫助器方法,該方法執行對服務器的實際請求。在此函數中,可以首先執行自定義邏輯以准備事件參數,然後可以將一個字符串作為參數發送到服務器端回調事件處理程序。
·另一個函數由處理回調事件的服務器代碼的結果調用並接收該結果,同時接受表示該結果的字符串。該函數就是上面所說的 clientCallBack 函數。
·第三個函數是執行對服務器的實際請求的 Helper 函數,當在服務器代碼中使用 GetCallbackEventReference 方法生成對此函數的引用時,由 ASP.NET 自動生成該函數。
我這裡做了一個最簡單的例子,只有一個WebForm,界面如下:
實現,在文本框裡輸入文本,點擊“服務器回顯”按鈕後,回顯結果顯示文本框的輸入。