AJAX的簡單例子~(zt)

來源:互聯網
上載者:User
1.ajax,是Asynchronous JavaScript and XML 的簡寫,即非同步JavaScript 和XML,是一種綜合使用javascript、dom、Xml、CSS等技術實現非同步傳輸資料的技術。
2.使用ajax技術,在介面上可以做到不重新整理頁面實現與後台互動,更重要的是“非同步”,減輕了伺服器負擔,減少了客戶的等待時間。
3.ajax,可以理解為一種多線程技術。
4.當傳輸的資料量不大,並且不考慮xml統一項目介面時,可以不必返回xml。

下面看一個例子(.net):
要實現的效果:在DropDownList裡選中某個人名,後台根據選項到資料庫裡尋找該人的Email,然後在TextBox裡顯示出來。
從 www.schwarz-interactive.de下載最Ajax檔案。
添加引用AjaxPro.2.dll (.net 2.0)。
在web.config中加入幾行:<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <system.web>
    <httpHandlers>
      <add verb="POST,GET" path="ajaxpro/*.ashx" type="AjaxPro.AjaxHandlerFactory, AjaxPro.2"/>
    </httpHandlers>

  []

  </system.web>
</configuration>

在.net代碼中註冊ajax方法:  public class _Default
  {
    protected void Page_Load(object sender, EventArgs e)
    {
      AjaxPro.Utility.RegisterTypeForAjax(typeof(_Default));
    }

    [AjaxPro.AjaxMethod]
    public string GetEmail(string name)
    {
        
    }
  }

這裡注意typeof(_Default)與上面的class _Default類名一致。
當用戶端向伺服器發出尋找Email請求時,這裡用public string GetEmail(string name)方法回應,用name去尋找返回結果Email。(這裡省略其過程代碼)
注意如果有多個Ajax方法,必須在每個方法前面都加上一句[AjaxPro.AjaxMethod]。

伺服器端這完成了,下面看用戶端。
在指令碼裡寫兩個function,如下:<script language="javascript" type="text/javascript">  
    function GetEmail()
    {
        var name= document.getElementById("DropDownList1").value;
        _Default.GetEmail(name,GetEmail_callback);
    }
    function GetEmail_callback(res)
    {
        document.getElementById("email").value=res.value;
    }
</script>

第一個函數即是觸發事件時調用的函數,意思是:先得到Id為"DropDownList1"的元素的值,然後調用類_Default裡註冊的ajax方法GetEmail(),name是public string GetEmail(string name)所需要的參數,而GetEmail_callback則是用戶端回調的方法——伺服器端得到結果時通過這個方法將結果返回到用戶端。第二個函數GetEmail_callback(res)即是:當伺服器端得到結果調用此函數時,將Id為"email"的元素的值設為返回結果res的值。
注意:
1.假如GetEmail()沒有參數時,在括弧裡面就唯寫回呼函數:_Default.GetEmail(GetEmail_callback);
2.回呼函數不必是"原函數_callback"的格式寫,這樣寫只是為了便於區分。

最後使用,在DropDownLost1裡寫上個onchange事件,調用GetEmail()函數。    <asp:DropDownList ID="DropDownList1" runat="server" onchange="GetEmail()"></asp:DropDownList>
    <asp:TextBox ID="email" runat="server"></asp:TextBox>

簡單的例子便做好了。

PS:這個東東主要是我找啥東西叫_callback的時候順帶找到的,覺得說的還算是清楚,就轉上來了~
原帖地址:http://www.cnblogs.com/jeffamy/archive/2006/04/23/382927.html

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.