AJAX
AJAX = Asynchronous JavaScript and XML(異步的 JavaScript 和 XML)。
AJAX 不是新的編程語言,而是一種使用現有標准的新方法。
AJAX 是與服務器交換數據並更新部分網頁的藝術,在不重新加載整個頁面的情況下。
通過在後台與服務器進行少量數據交換,AJAX 可以使網頁實現異步更新。這意味著可以在不重新加載整個網頁的情況下,對網頁的某部分進行更新。
傳統的網頁(不使用 AJAX)如果需要更新內容,必需重載整個網頁面。
准備:使用ajax需要一個一般處理程序項,裡面執行要執行的C#代碼,是以ashx結尾的。
xml:可擴展的標記語言
主要作用:就是記錄一些數據,
為什麼要用它來記錄數據?
因為它是通用的,數據在不同語言之間的傳遞
劣勢:
1、結構繁瑣,同樣的數據,要編寫的內容較多,而且內容量較大
2、獲取數據時比較麻煩,需要一個一個的去找標記,然後獲取標記中的內容
json:
主要作用:也是記錄數據,並且將數據在不同語言之間傳遞
與xml的區別:
1、結構清晰,類似於實體類的結構組合方式
2、獲取數據時,類似實體類的取值方式
實例:
網頁端:
<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><br />
<asp:Button ID="Button1" runat="server" Text="Button" />
</div>
</form>
</body>
</html>
<script type="text/javascript">
$("#Button1").click(function () {
var oTxt = $("#TextBox1").val();
//1、引用Jquery
//2、編寫ajax基本格式
$.ajax({
url: "aaaa1.ashx",//要連接到哪個服務端
data: { "id": oTxt },//將什麼數據傳遞到服務端
type: "POST",//用什麼樣的傳遞方式傳過去
dataType: "json",//返回的數據類型是什麼類的
success: function (bbb) {
if (bbb.has == 0) {
$("#Label1").text("恭喜!用戶名可用!");
}
else {
alert(bbb.nickname);
$("#Label1").text(bbb.pwd+","+bbb.nickname+","+bbb.sex+","+bbb.birthday+","+bbb.nation);
}
},
error: function () {
$("#Label1").text("無法連接到服務器!");
}
});
return false;
});
</script>
一般處理程序:
public void ProcessRequest(HttpContext context)
{
string Uname = context.Request["id"];
using (Data0617DataContext con = new Data0617DataContext())
{
Users u = con.Users.Where(r => r.UserName == Uname).FirstOrDefault();
if (u != null)
{
//json字符串格式
context.Response.Write("{\"has\":\"1\",\"pwd\":\"" + u.PassWord + "\",\"nickname\":\"" + u.NickName + "\",\"sex\":\"" + u.Sex + "\",\"birthday\":\"" + u.Birthday + "\",\"nation\":\"" + u.Nation + "\"}");
}
else
{
context.Response.Write("{\"has\":\"0\"}");
}
context.Response.End();
}
}