C#-WebForm-AJAX阿賈克斯(一)基礎知識


AJAX 即“ A synchronous J avascript And X ML ”(異步JavaScript和XML),是指一種創建 交互式網頁應用的網頁開發技術。
AJAX = 異步 JavaScript和XML(標准通用標記語言的子集)。
AJAX 是一種 用於創建快速動態網頁的技術
通過在后台與服務器進行少量數據交換,AJAX 可以使網頁實現異步更新。這意味着 可以在不重新加載整個網頁的情況下,對網頁的某部分進行更新
傳統的網頁(不使用 AJAX)如果需要更新內容,必須重載整個網頁頁面。
這個術語源自描述從基於 Web 的應用到基於數據的應用的轉換。在基於數據的應用中,用戶需求的數據如聯系人列表,可以從獨立於實際網頁的服務端取得並且可以被動態地寫入網頁中,給緩慢的Web應用體驗着色使之像桌面應用一樣。
AJAX 的核心是 JavaScript 對象 XMLHttpRequest。該對象在 Internet Explorer 5 中首次引入,它是一種支持異步請求的技術。簡而言之, XMLHttpRequest使您可以使用 JavaScript 向服務器提出請求並處理響應,而不阻塞用戶
 
 
先引用jQuery,再寫代碼
代碼格式:(李獻策lxc)
$.ajax({
    url:"",//要將此次請求發送到哪個服務端去
    data:{},//給服務端帶的數據,可以沒有,也可以是多個
    type:"post", //傳遞的方式
    dataType:"json",//數據傳遞的格式
    success:function(data){}//如果成功返回執行此方法,“data”為自定義名
});
 
1、一般數據處理程序(數據接口):ashx文件
 
2、跨語言傳遞數據
XML 可擴展的標記語言
  結構不清晰
  代碼量比較大
  查找起來比較費事
  非面向對象結構
json
  結構清晰
  代碼量相對較小
  面向對象的處理方式,查找數據很簡單
 
  基本結構:
     鍵值對:{"":"","":'',"":""}(英文狀態下)
=============================================================
練習:驗證用戶名是否可用
一、普通方式,不用ajax
前台代碼:
<body>
    <form id="form1" runat="server">
    <div>
        <br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
        <asp:TextBox ID="TextBox1" runat="server" AutoPostBack="true"></asp:TextBox>
        <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
    </div>
    </form>
</body>
前台代碼

后台代碼:

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        TextBox1.TextChanged += TextBox1_TextChanged;
    }

    void TextBox1_TextChanged(object sender, EventArgs e)
    {
        if (TextBox1.Text == "zhangsan" || TextBox1.Text == "lisi")
        {
            Label1.Text = "用戶名已存在!";
            Label1.ForeColor = System.Drawing.Color.Red;
        }
        else
        {
            Label1.Text = "恭喜!用戶名可以使用!";
            Label1.ForeColor = System.Drawing.Color.Green;
        }
    }
}
后台代碼

焦點丟失時觸發事件,會重新加載整個頁面,用戶體驗差!

二、ajax局部刷新

 前台代碼:

<body>
    <form id="form1" runat="server">
    <div>
        <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
        <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
    </div>
    </form>
</body>
前台代碼

后台代碼:

var txt1 = document.getElementById("TextBox1");
txt1.onkeyup = function () {
    var v = txt1.value;

    $.ajax({
        url: "../ajax/Handler.ashx",
        data: { "txt1": v },
        type: "post",
        dataType: "json",
        success: function (data) {
            document.getElementById("Label1").innerHTML = data.ok;
            if (data.ok1 == "true") {
                document.getElementById("Label1").style.color = "green";
            }
            else {
                document.getElementById("Label1").style.color = "red";
            }
        }
    });
};
js代碼
<%@ WebHandler Language="C#" Class="Handler" %>

using System;
using System.Web;

public class Handler : IHttpHandler {
    
    public void ProcessRequest (HttpContext context) {
        string s=context.Request["txt1"];
        string json = "{\"ok\":\"恭喜!用戶名可用!\",\"ok1\":\"true\"}";

        if (s == "zhangsan" || s == "lisi")
        {
            json = "{\"ok\":\"此用戶名不可用!\",\"ok1\":\"false\"}";
        }

        context.Response.Write(json);
        context.Response.End();
    }
 
    public bool IsReusable {
        get {
            return false;
        }
    }

}
ashx代碼

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM