客户端调用服务器端方法——ASP.NET AJAX(Atlas)、Anthem.NET和Ajax.NET Professional实现之小小比较
来源:互联网 发布:mac怎么看百度云视频 编辑:程序博客网 时间:2024/05/02 19:50
由于本文侧重于“比较”,而不是“介绍”,所以对于基础知识都一笔带过。有需要详细了解程序实现,或是希望重现实验结果的朋友,可以下载本文附带的代码。
程序要实现的功能
程序功能很简单,却也足够典型:
- 用户点击页面上的某个<input>按钮
- 浏览器执行该按钮的客户端JavaScript事件处理函数
- 该JavaScript事件处理函数调用某服务器端方法
- 服务器端方法执行并返回当前时间
- 客户端JavaScript回调函数执行,将服务器端返回的时间显示在页面中一个<span>中
程序运行界面
由于这三个程序的界面、行为以及实现功能都完全一致,所以这里仅以ASP.NET AJAX(Atlas)版本的为例。下面是程序初始化之后的界面:
点击按钮,上面介绍的5个步骤将依次执行,最终得到如下图所示的结果,显示出服务器端时间:
ASP.NET AJAX(Atlas)版本的实现代码
首先是页面的HTML部分,注意ASP.NET AJAX(Atlas)独有的ScriptManager控件:
<asp:ScriptManager ID="ScriptManager1" runat="server" />
<div>
<input type="button" value="Get Server Time" id="btnGetServerTime" onclick="return btnGetServerTime_onclick()" />
<span id="result" />
</div>
然后是客户端JavaScript部分,注意用PageMethods.GetServerTime()这样的形式调用服务器端方法:
function btnGetServerTime_onclick() {
PageMethods.GetServerTime(cb_getServerTime);
}
function cb_getServerTime(result) {
document.getElementById("result").innerHTML = result;
}
服务器端代码如下,注意方法必须为静态,且添加[System.Web.Services.WebMethod]和[Microsoft.Web.Script.Services.ScriptMethod]两个属性:
[System.Web.Services.WebMethod]
[Microsoft.Web.Script.Services.ScriptMethod]
public static string GetServerTime()
{
return DateTime.Now.ToString();
}
OK!
Anthem.NET版本的实现代码
首先是页面的HTML部分,没什么过多需要注意的:
<div>
<input type="button" value="Get Server Time" id="btnGetServerTime" onclick="return btnGetServerTime_onclick()" />
<span id="result" />
</div>
客户端JavaScript部分,注意用Anthem_InvokePageMethod辅助函数调用服务器端方法:
function btnGetServerTime_onclick() {
Anthem_InvokePageMethod("GetServerTime", [], cb_getServerTime);
}
function cb_getServerTime(result) {
document.getElementById("result").innerHTML = result.value;
}
最后是服务器端代码,注意Page_Load中要注册一下(与ASP.NET AJAX中的ScriptManager有异曲同工之妙)。还有方法应用了[Anthem.Method]属性:
[Anthem.Method]
public string GetServerTime()
{
return DateTime.Now.ToString();
}
protected void Page_Load(object sender, EventArgs e)
{
Anthem.Manager.Register(this);
}
OK!
Ajax.NET Professional版本的实现代码
页面的HTML部分和Anthem.NET版本的完全一致:
<div>
<input type="button" value="Get Server Time" id="btnGetServerTime" onclick="return btnGetServerTime_onclick()" />
<span id="result" />
</div>
客户端JavaScript部分倒于与ASP.NET AJAX得有几分神似,注意“ASP.ajaxpro_aspx”这个东西为本ASP.NET页面编译后的类名:
function btnGetServerTime_onclick() {
ASP.ajaxpro_aspx.GetServerTime(cb_getServerTime);
}
function cb_getServerTime(result) {
document.getElementById("result").innerHTML = result.value;
}
服务器端代码类似Anthem.NET版本的实现方式,同样需要在Page_Load中注册,且需要为方法应用一个属性——不过这里是[AjaxPro.AjaxMethod]:
[AjaxPro.AjaxMethod]
public string GetServerTime()
{
return DateTime.Now.ToString();
}
protected void Page_Load(object sender, EventArgs e)
{
AjaxPro.Utility.RegisterTypeForAjax(this.GetType());
}
OK!
实现方式比较
用图表说话吧,我也同样不再评论了:
源代码下载
程序源代码:3ASPNETAJAXFrameworksTest.zip
- 客户端调用服务器端方法——ASP.NET AJAX(Atlas)、Anthem.NET和Ajax.NET Professional实现之小小比较
- 客户端调用服务器端方法——ASP.NET AJAX(Atlas)、Anthem.NET和Ajax.NET Professional实现之小小比较
- 客户端调用服务器端方法——ASP.NET AJAX(Atlas)、Anthem.NET和Ajax.NET Professional实现之小小比较
- 客户端调用服务器端方法——ASP.NET AJAX(Atlas)、Anthem.NET和Ajax.NET Professional实现之小小比较
- ASP.NET AJAX(Atlas)和Anthem.NET——管中窥豹般小小比较
- ASP.NET AJAX(Atlas)和Anthem.NET——管中窥豹般小小比较
- ASP.NET AJAX(Atlas)和Anthem.NET——管中窥豹般小小比较
- ASP.NET AJAX(Atlas)和Anthem.NET——管中窥豹般小小比较
- Anthem.NET、Ajax.net和Atlas的比较
- Microsoft ASP.NET AJAX 使用客户端调用服务器端的方法
- Microsoft ASP.NET AJAX 使用客户端调用服务器端的方法
- ASP.NET AJAX 使用客户端调用服务器端的方法
- ASP.NET中,客户端利用 ASP.NET AJAX(Atlas)调用服务端方法的代码
- Asp.net ajax、Anthem.net、Ajax pro三大ajax框架论坛网友比较
- 关于Atlas和ASP.NET Ajax
- ASP.NET AJAX (Atlas)学习
- ASP.NET AJAX (Atlas)学习
- 使用asp.net ajax的PageMethods来让客户端代码调用服务器端的方法
- 软件设计的实际流程
- C的位操作
- linux man 手册各个章节的意义和用法zz
- 正则表达式之全部符号解释
- 怎样改变.chm文档的字体大小
- 客户端调用服务器端方法——ASP.NET AJAX(Atlas)、Anthem.NET和Ajax.NET Professional实现之小小比较
- 第二篇 FLEX核心开发技术
- QTP添加右键的操作
- 英语科技论文写作
- 本位币的理解
- 第四章 构建高效率表现层逻辑
- 关于女人的程序人生
- Windows VC6编译安装Boost库
- To be a Good Programmer, You'd Find a Pair Programmer