快速學習AJAX之三 Ajax實現登陸

來源:互聯網
上載者:User

     學習了前面的兩節課程之後,我們應該對AJAX有了一個比較簡單的印象了。學習技術就是為了應用,下面我們繼續,以後的課程我們可能會慢慢的做一些小執行個體了。

這些例子不會太大,但是我預期就是給大家完成一個完全採用AJAX與伺服器互動的例子,希望大家跟上學習。當然我說了,我是基於ASP.NET的原生態AJAX,所以後面

的執行個體中我難免用.NET技術與C#開發語言。請大家諒解,所以,希望對.NET開發有一定基礎的童鞋們不要錯過啊。

這節課,終於在廢話連篇中開始了。

好了,我們最常見得應用是什麼呢,哈哈,登陸。你想想,假如一個登陸需要去伺服器端實現,那麼可能會出現一個問題,就是,我單擊登陸按鈕之後,鬱悶~~~網速不給力,白屏了。

等了老半天顯示一個文字,登陸成功。這麼著使用者體驗肯定不友好,所以呢,我們採用AJAX實現,呵呵,至少不會出現白屏現象。好了,本打算,先建立資料庫的,後來,由於種種原因。

還是等以後的例子,在建立資料庫吧,我們先簡單的實現功能,以後在慢慢實現其他的。

登陸需要什嗎?使用者名稱,密碼  驗證碼,這回就先不做了,下節課補上。 安全性傳送POST

先準備一個 表格

<body>    <table>       <tr><th colspan="2">登陸表單</th></tr>       <tr><td>使用者名稱</td><td><input type="text" id="name"/></td></tr>       <tr><td>密碼</td><td><input type="password" id="pwd"/></td></tr>       <tr><td colspan="2" align="center"><input type="button" value="登陸" onclick="getAjax();" /></td></tr>       <tr><td colspan="2" id="returnLogin" align="center"></td></tr>    </table>    </body>

頁面就不做美工了 ,呵呵,那個比較費時間的

看看效果,呵呵,一般般啦。

下面該做什麼呢?當然是建立 XMLHttpRequest 非同步對象了,沒這個,還做什麼啊。

哎,算了,還是寫出AJAX代碼,然後再做研究吧

    <style type="text/css">    *{        padding:0px;        margin:0px;        font-size :12px;    }    table{        margin:0 auto;    }    </style>    <script type="text/javascript">        var xmlHttp = false;        try {            xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");         } catch(e1) {           try{             xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");           }           catch(e2){             xmlHttp = false;           }         }       if (!xmlHttp && typeof XMLHttpRequest != 'undefined') {           xmlHttp = new XMLHttpRequest();        }      function getAjax() {            var name = document.getElementById("name").value;          var pwd = document.getElementById("pwd").value;          xmlHttp.open("POST", "Login.ashx", true);          xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");          xmlHttp.onreadystatechange = function () {              if (xmlHttp.readyState == 4 && xmlHttp.status == 200) {                  document.getElementById("returnLogin").innerHTML = xmlHttp.responseText;              }          }          xmlHttp.send("name="+name+"&pwd="+pwd);      }    </script>

我像上面的代碼,大夥應該都看的懂吧 ,

 var name = document.getElementById("name").value;

var pwd = document.getElementById("pwd").value;

這個是使用JS的辦法得到 兩個文字框中的數值。

然後我們採用上兩節課程中的簡單例子,實現了傳輸兩個參數到“Login.ashx”頁面

然後 Login.ashx 的代碼如下

public void ProcessRequest(HttpContext context){    context.Response.ContentType = "text/html";    var name = context.Request["name"].ToString();    var password = context.Request["pwd"].ToString();    if (name=="kingdz"&&password=="kingdz")        context.Response.Write("登陸成功");    else        context.Response.Write("登入失敗");}

好了,代碼寫完了,這麼做就可以,實現最基本的登陸了,然後本來上面的使用者名稱和密碼都應該從資料庫讀取的,可是後來,想想還是算了,這麼做簡單點,速度也快點啊,(*^__^*) 嘻嘻……

登陸成功了,然後我想大多數網站不是這麼做的吧,登陸成功之後顯示什麼呢?呵呵當然是顯示一個人的基本資料了啊。

我們現在嘗試實現以下  我寫的資料全部都是虛擬啊,首先,你先找個美女圖片走頭像,哈哈

public void ProcessRequest(HttpContext context){    context.Response.ContentType = "text/html";    var name = context.Request["name"].ToString();    var password = context.Request["pwd"].ToString();    var sex = "男";    var age = 16;    var imageUrl="Images/6.png";//不寫代碼尋找路徑了,這裡面的圖片路徑本來應該從資料庫中讀取出來。呵呵    StringBuilder sb = new StringBuilder();    if (name == "kingdz" && password == "kingdz")    {        sb.Append("<table><tr><td rowspan='4'><img src='");        sb.Append(imageUrl);        sb.Append("'alt='mmpic' /></td><td align='left'>姓名:");        sb.Append(name);        sb.Append("</td></tr><tr><td align='left'>性別:");        sb.Append(sex);        sb.Append("</td></tr><tr><td align='left'>年齡:");        sb.Append(age);        sb.Append("</td></tr><tr><td align='left'>密碼:");        sb.Append(password);        sb.Append("</td></tr></table>");        context.Response.Write(sb);    }    else        context.Response.Write("登入失敗");}

修改這個方法,看到沒?在這裡我們需要把  返回對象 responseText拼接成一個 Table

StringBuilder 效率高 首當其衝啊,哈哈

再次鄭重聲明 ,本AJAX是 基於ASP.NET 的“原生態AJAX”本教程裡面的例子涉及很多 C#語言。

在運行以下吧

哈哈,性別搞錯了,不過我想這個效果比簡單的  登陸成功好多了吧,當然你也可以嘗試做成下面的效果

登陸成功替換現在的這個表單

好了,登陸應該可以了,下節課,我們在討論以下其他的AJAX在登陸上面可以做的文章。

相關文章

聯繫我們

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