用Ajax.net實現用戶端回調(Callback)

來源:互聯網
上載者:User

本章主要介紹怎樣用Ajax.net實現Callback技術。大家都知道Callback技術是Asp.net 2.0的新技術,它是Ajax.net出來之前的一個過渡技術。使用它也能實作類別似Ajax般的無重新整理技術,但是由於使用比較麻煩,限制比較多,當 Ajax.net架構出來之後Callback技術就被冷落了。但所有技術都有它存在的價值和意義,在某些時候,特別是小型資料轉送的時候,使用 Callback技術比用Ajax效率更高,而且在Ajax.net架構下使用Callback技術,頁面不用繼承ICallbackEventHandler介面,步驟也簡單很多。現在在下就講一下怎樣在Ajax.net架構下使用Callback技術。

第一步:建立WebService

在Ajax.net架構下使用Callback技術需要用WebService作為資料轉送的載體。我們先建立一個Asp.net Ajax-Enabled Web Site。然後添加一個新的WebService並命名為SimpleService.asmx。

然後我們寫一個簡單WebService,記得一定要加上System.Web.Script.Services.ScriptService屬性,否則我們不能在用戶端訪問該WebService。

具體的代碼如:

這是一個非常簡單的WebService,在下只簡單改了HelloWorld的代碼。當我們運行該WebService,隨便輸入一個名字時,我們會得到“Hello,somenames”這樣的一個反饋資訊。

運行一下,如果可以看到以下效果,那麼我們的SimpleService.asmx就完成了。

第二步:調用WebService

我們回到Default.aspx,由於我們建立的是Asp.net Ajax-Enabled Web Site,因此Default.aspx上已經自動產生了ScriptManager組件代碼。我們要對它作一些修改,如下所示:

 <asp:ScriptManager ID="ScriptManager1" runat="server" >
        <Services>
        <asp:ServiceReference Path="SimpleService.asmx" />
        </Services>
</asp:ScriptManager>

加粗的地方要寫正確WebService的檔案名稱。

修改完ScriptManager的設定後,我們就可以開始編寫JavaScript來callback這個WebService了。

我們先在設計介面裡拖進一個HtmlInputText控制項和一個HtmlInputButton控制項,然後雙擊Button控制項寫代碼。

具體代碼如下:

<script language="javascript" type="text/javascript">
// <!CDATA[function Button1_onclick() {
    ret = SimpleService.HelloWorld(document.getElementById('Text1').value, OnComplate, OnTimeOut, OnError);
    return true;
}function OnComplate(arg)
{
    alert(arg);
}function OnTimeOut(arg)
{
    alert("TimeOut!");
}function OnError(arg)
{
    alert("eRROR!");
}// ]]>
</script>

 函數OnComplate是成功調用完畢後用戶端所執行的函數,OnTimeOut是當伺服器響應逾時後用戶端所執行的函數,OnError就是當發生錯誤時用戶端所執行的函數。

注意:在JavaScript中的SimpleService是SimpleService.asmx的類名,不是檔案名稱。如果你更改了WebService的類名稱,這裡的名稱是要跟著改變的,而ScriptManager中的SimpleService.asmx是檔案名稱,這一點大家一定要分清楚。

OK,運行!

結束:

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.