您的位置:首页 > 其它

使用AjaxPro实现ajax效果

2007-08-24 16:01 676 查看

使用AjaxPro实现ajax效果




在上一篇使用XMLHttpRequest 实现ajax效果中,介绍了使用XMLHttpRequest实现ajax效果,本篇将使用AjaxPro.Net框架实现同样的功能:在客户端异步获取服务端时间!AjaxPro.Net是一个优秀的.net环境下的ajax框架,用法很简单,可以查阅相关资料,简单说有几点:


1)添加AjaxPro.dll应用;


2)配置web.config;


3)写服务端方法,加[AjaxPro.AjaxMethod]申明;
如果要修改sseion就改成
[AjaxPro.AjaxMethod(AjaxPro.HttpSessionStateRequirement.ReadWrite)]


4)客户端调用服务端方法;(ajaxpro最大的优点:客户端js中直接调用服务端方法)


客户端代码:


<html xmlns="http://www.w3.org/1999/xhtml" >


<head runat="server">


<title>AjaxPro onLoading</title>


</head>


<body>


<form id="form1" runat="server">


<div id="loadinfo" style="visibility:hidden;position:absolute;left:0px;top:0px;background-color:Red;color:White;">Loading</div>




<input id="Button1" type="button" value="Get ServerTime" onclick ="javascript:GetTime();void(0)" />






<script type="text/javascript" defer="defer">...




// loading效果


AjaxPro.onLoading = function(b)




...{


var a = document.getElementById("loadinfo");


a.style.visibility = b ? "visible" : "hidden";


}




function GetTime()




...{


// 调用服务端方法


//调用方法:类名.方法名 (参数为指定一个回调函数)


myLoad.GetServerTime(callback);


}




function callback(res) //回调函数,显示结果




...{


alert(res.value);


}


</script>


</form>


</body>


</html>


注: javascript代码放在form内结束处,确保可以访问AjaxPro对象,否则提示AjaxPro未定义;因为在服务端page_load输出 js到页面后才到找到AjaxPro对象;且javascript的defer="defer",页面加载时先不执行此代码。


服务端代码:


public partial class myLoad : System.Web.UI.Page


{


protected void Page_Load(object sender, EventArgs e)


{


AjaxPro.Utility.RegisterTypeForAjax(typeof(myLoad)); //注册ajaxPro,括号中的参数是当前的类名


}




[AjaxPro.AjaxMethod] //申明是ajaxPro方法


public string GetServerTime()


{


System.Threading.Thread.Sleep(2000);


return DateTime.Now.ToString();


}


}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: