AJAX含義: 即“Asynchronous Javascript And XML”(異步JavaScript和XML),是指一種創建交互式網頁應用的網頁開發技術。
AJAX可以跨語言傳遞數據,所需文件類型是一般處理程序(數據接口):ashx
數據交換格式:
xml:
結構不清晰
代碼量比較大
查找起來比較費事
非面向對象結構
json:
結構清晰
代碼量相對較小
面向對象的處理解析方式,查找數據很簡單
json的格式:
鍵值對
{"key1":"value","key2":"value"}
多個對象的json
[{"key1":"value","key2":"value"},{"key1":"value","key2":"value"},{"key1":"value","key2":"value"}]
AJAX使用
JS部分的固定格式:(需引用jquery)
$.ajax({ url: "ajax/bbb.ashx", //要將此次請求提交到哪個服務端去 data: { "zhangke": c }, //給服務端帶的數據,可以沒有,也可以多個 type: "post", //傳遞的方式 dataType: "json", //數據傳遞的格式 success: function (aaa) { document.getElementById("Label1").innerHTML = aaa.lmz; if (aaa.xc == "true") { document.getElementById("Label1").style.color = "green"; } else { document.getElementById("Label1").style.color = "red"; } } });
后台:
public void ProcessRequest (HttpContext context) { string s = context.Request["zhangke"]; string end = "{\"lmz\":\"恭喜!用戶名可用!\",\"xc\":\"true\"}"; if (s == "zhangsan" || s == "lisi") { end = "{\"lmz\":\"用戶名已被占用!\",\"xc\":\"false\"}"; } context.Response.Write(end); context.Response.End(); }
注意:json的格式一定不能錯,中間的許多雙引號需要轉義符,如果容易弄錯,個人方法是可以先用個其他符號代替,比如單引號,然后對字符串進行操作把里面的所有單引號替換為雙引號
AJAX擴展:(加載多行數據)
關鍵部分是后台中需要給JS傳遞過去多個json對象,以及JS中如何把多個對象的數據加載到表格中
首先,寫好查詢方法,查詢出需要的數據,返回一個泛型集合,然后用循環拼接出json,特別要注意逗號的拼接
string json = "["; List<Users> ulist = new UsersData().Select(c, n); int count = 0; foreach (Users u in ulist) { if (count > 0) { json += ","; } json += "{\"username\":\"" + u.UserName + "\",\"password\":\"" + u.PassWord + "\",\"nickname\":\"" + u.NickName + "\",\"sex\":\"" + (u.Sex ? "男" : "女") + "\",\"birthday\":\"" + u.Birthday.ToString("yyyy年MM月dd日") + "\",\"nation\":\"" + u.Nation + "\",\"class\":\"" + u.Class + "\",\"age\":\"" + u.Age + "\"}"; count++; } json += "]"; context.Response.Write(json); context.Response.End();