以下文章是本人自己的理解,如有什么不正确的地方,请批评指正
个人认为web体验中最厌恶的就是页面频繁的刷新,
如:提交表单,注册等等,ASP.NET回送:使web页面重新经过生命周期,然后返回给浏览器,在请求响应中传送大量无用数据,于是AJAX技术就应运而生,今天我要说的ASP.NET回调,其原理就是AJAX的另一种应用。
那么什么是ASP.NET回调呢?
回调就是通过xmlhttprequest组件异步的向服务端post(提交),传送和返回必须的数据,而不用传送整个页面。
下面用一个简单例子来说明ASP.NET回调的应用:
新建立页面1.aspx前台html代码:
<script type="text/javascript">
function CallServer(str){
arg = "盖茨";
<%=Msg%>
}
//接收服务端返回值
function ReceiveServerData(msg){
alert(msg);
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<input type="button" id="btn1" value="点点" οnclick="CallServer();"; />
</div>
</form>
</body>
后台cs代码:
using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace js
{
//实现回调的控件或类必须 实现ICallbackEventHandler接口
public partial class WebForm1 : System.Web.UI.Page,System.Web.UI.ICallbackEventHandler
{
public string msg;
public string Msg;
protected void Page_Load(object sender, EventArgs e)
{
//注册回调脚本
Msg = ClientScript.GetCallbackEventReference(this, "arg", "ReceiveServerData", "str");
}
//接收客户端的数值
public void RaiseCallbackEvent(string str)
{
msg = str;
}
//返回给客户端数值
public string GetCallbackResult()
{
return "你好:," + msg + "现在是:" + DateTime.Now.ToLongTimeString();
}
}
}
运行页面,点击按钮,就弹出服务器返回的值
感觉所谓的回调,还不如AJAX用着舒服