Microsoft Asp.Net Ajax框架入门(12) 了解异步通信层
VS 2008
本文通过两个简单的例子,了解Asp.Net Ajax Asynchronous Communication Layer
Asp.Net Ajax异步通信层提供了一系列客户端的类,用于客户端请求服务端
第一个例子:请求服务端页面
1) 被请求页 Ajax_GetUserName.aspx
html代码仅留页面声明,其余全部清楚:
Ajax_GetUserName.aspx.cs页面写处理逻辑:
2) 客户端请求
第二个例子:请求XML文档
1)新建UserInfos.xml
2)客户端请求
本文通过两个简单的例子,了解Asp.Net Ajax Asynchronous Communication Layer
Asp.Net Ajax异步通信层提供了一系列客户端的类,用于客户端请求服务端
第一个例子:请求服务端页面
1) 被请求页 Ajax_GetUserName.aspx
html代码仅留页面声明,其余全部清楚:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Ajax_GetUserName.aspx.cs" Inherits="Ajax_GetUserName" %>
Ajax_GetUserName.aspx.cs页面写处理逻辑:
public partial class Ajax_GetUserName : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (Request.QueryString["userId"] == "1") {
Response.Write("guozhijian");
}
else {
Response.Write(string.Empty);
}
}
}
{
protected void Page_Load(object sender, EventArgs e)
{
if (Request.QueryString["userId"] == "1") {
Response.Write("guozhijian");
}
else {
Response.Write(string.Empty);
}
}
}
2) 客户端请求
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Untitled Page</title>
<script type="text/javascript">
function btnGetNameClickHandler() {
var req = new Sys.Net.WebRequest();
req.set_url("Ajax_GetUserName.aspx?userId=1");
req.add_completed(requestCompleted);
req.invoke();
}
function requestCompleted(executor, eventArgs) {
if(executor.get_statusCode() == 200) {
alert(executor.get_responseData());
}
}
</script>
</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="smgr" runat="server"></asp:ScriptManager>
<div>
<input type="button" id="btnGetName" onclick="btnGetNameClickHandler()" value="get name" />
</div>
</form>
</body>
</html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Untitled Page</title>
<script type="text/javascript">
function btnGetNameClickHandler() {
var req = new Sys.Net.WebRequest();
req.set_url("Ajax_GetUserName.aspx?userId=1");
req.add_completed(requestCompleted);
req.invoke();
}
function requestCompleted(executor, eventArgs) {
if(executor.get_statusCode() == 200) {
alert(executor.get_responseData());
}
}
</script>
</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="smgr" runat="server"></asp:ScriptManager>
<div>
<input type="button" id="btnGetName" onclick="btnGetNameClickHandler()" value="get name" />
</div>
</form>
</body>
</html>
第二个例子:请求XML文档
1)新建UserInfos.xml
<?xml version="1.0" encoding="utf-8" ?>
<userInfos>
<userInfo>
<userId>1</userId>
<userName>guozhijian</userName>
</userInfo>
<userInfo>
<userId>2</userId>
<userName>zhenglanzhen</userName>
</userInfo>
</userInfos>
<userInfos>
<userInfo>
<userId>1</userId>
<userName>guozhijian</userName>
</userInfo>
<userInfo>
<userId>2</userId>
<userName>zhenglanzhen</userName>
</userInfo>
</userInfos>
2)客户端请求
function btnGetXmlClickHandler() {
var req = new Sys.Net.WebRequest();
req.set_url("UserInfos.xml");
req.add_completed(getXmlCompleted);
req.invoke();
}
function getXmlCompleted(executor, eventArgs) {
if(executor.get_statusCode() == 200) {
alert(executor.get_xml().xml);
}
}
var req = new Sys.Net.WebRequest();
req.set_url("UserInfos.xml");
req.add_completed(getXmlCompleted);
req.invoke();
}
function getXmlCompleted(executor, eventArgs) {
if(executor.get_statusCode() == 200) {
alert(executor.get_xml().xml);
}
}