今天是:
首 页信息查询网站SEO查询工具CSS编辑器建站素材
网海拾贝,电脑资讯,电脑快报,it资讯,网站建设资讯,教程基地
软件新闻
操作系统
Vista Winxp Win2003 Linux Windows综合
工具软件
系统工具 媒体工具 网络工具 杀毒软件 聊天
软件开发
C教程 C++ Java C# ASP.NET JSP PHP
数据库
Oracle MySQL DB2 SQL Server Sybase
安全
网络 病毒
办公应用
Word Excel Powerpoint Outlook 其他
平面设计
Photoshop Fireworks Coreldraw Flash Illustrator 3dsmax
网站运营
网站运营 网站优化 网站策划 策划书下载 建站心得 站长故事 网站盈利 网页制作 网页特效 建站素材 免费资源 QQ频道
  当前位置:首 页 >> 软件开发 >> ASP.NET教程 >> 详解如何实现最基本的AJAX框架

详解如何实现最基本的AJAX框架

  发布于2008-08-15 15:55 来源:51cto

详解如何实现最基本的AJAX框架

详解如何实现最基本的AJAX框架(1)

Asp.Net 2.0自带的客户端回调

Asp.Net 2.0已经发布。2.0有了许多新特性,客户端回调就是其中之一。客户端回调允许我们不经过回发而调用服务器端的方法,与AJAX提供的功能是一致的,但是不如AJAX灵活,AJAX可以自定义调用的方法,2.0自带的回调功能却不行。要使用客户端回调功能必须实现 System.Web.UI.IcallbackEventHandler接口。

这个接口包含两个方法

//客户端回调时固定调用此方法

public void RaiseCallbackEvent(String eventArgument)

//执行完RaiseCallbackEvent后将调用此方法。此方法的返回值将被发回客户端

public string GetCallbackResult()

例:

.cs:

String cbReference = Page.ClientScript.GetCallbackEventReference(

this,"arg", "ReceiveServerData", "context");

String callbackScript;

callbackScript = "function CallServer(arg, context)" + "{ " + cbReference + "} ;";

Page.ClientScript.RegisterClientScriptBlock(

this.GetType(),"CallServer", callbackScript, true);

javascript:

AJAX介绍

AJAX并不是一种新的技术,而是一些已有技术的有机结合,主要包括:XmlHttp、Reflect。一个AJAX框架基本上包括:一个自定义的HttpHandler、一段JavaScript代码。

AJAX运行机制

以前我们使用XmlHttp实现无刷新页面的时候,是用XmlHttp来请求一个隐藏的页面,使用(Asp/Asp.Net)自带的 HttpHandler,而在AJAX中,我们请求的也是一个隐藏的页面,不同的是这个页面的HttpHandler是由我们自己来实现。

打造自己的AJAX

1.首先我们要实现一个Http处理程序(HttpHandler)来响应客户端的请求:

实现自定义的HttpHandler需要实现IHttpHandler接口。

该接口包含一个属性和一个方法:

  bool IHttpHandler.IsReusable

void IHttpHandler.ProcessRequest(HttpContext context)

Example:

bool IHttpHandler.IsReusable

{

get { return true; }

}

void IHttpHandler.ProcessRequest(HttpContext context)

{

context.Response.Clear(); //获取要调用的方法

string methodName = context.Request.QueryString["me"];

//获取程序集信息。

//Czhenq.AJAX.Class1.Dencode是自定义的字符串编码方法

string AssemblyName = Czhenq.AJAX.Class1.Dencode(context.Request.QueryString["as"]);

//获取方法的参数

string Arguments = context.Request.QueryString["ar"]; //开始调用方法

Type type = Type.GetType(AssemblyName);

MethodInfo method = type.GetMethod(methodName,

BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Static | BindingFlags.Instance);

if (method != null)

{

//参数使用","分隔

string[] args = Arguments.Split(",".ToCharArray());

ParameterInfo[] paras = method.GetParameters();

object[] argument = new object[paras.Length];

for (int i = 0; i < argument.Length; i++)

{

if (i < args.Length) {

//因为XmlHttp传递过来的参数全部时String类型,所以必须进行转换

//这里只将参数转换为Int32,并不做其他考虑。

argument[i] = Convert.ToInt32(args[i]);

}

}

object value = method.Invoke(Activator.CreateInstance(type, true), argument);

if (value != null) context.Response.Write(value.ToString());

else context.Response.Write("error");

}

//处理结束

context.Response.End();




中查找“详解如何实现最基本的AJAX框架”更多相关内容

中查找“详解如何实现最基本的AJAX框架”更多相关内容



上一篇:如何使用ASP.Net加密Cookie
下一篇:asp.net2.0中App_GlobalResources用途
最近更新 赞助商
·aspnet_regsql不能在sql2005下使用的解决10-14
·asp.net中的观察者模式09-18
·ASP.NET MVC:实现我们自己的视图引擎09-05
·asp.net2.0中App_GlobalResources用途08-22
·详解如何实现最基本的AJAX框架08-15
·如何使用ASP.Net加密Cookie08-15
·ASP.Net之C#中的异常处理08-14
·asp.net验证控件的气泡提示效果04-04
·ASP.NET中多国语言的实现方法03-14
·不用组件实现Ajax效果01-24
·asp.net 2.0 权限树的控制01-24

共有评论 0 条 网友评分 0分 查看所有评论


发表评论→ 学而不思则罔,思而不学则殆,请大胆发表你的见解。

输验证码:

您对此篇文章的评分:1分 2分 3分 4分 5分

  • 站内搜索
关键词

搜索方式

搜索范围

精确匹配
Baidu
网站首页 - 关于本站 - 网站地图 - 广告合作 - 站点声明 - RSS订阅 - 联系我们
Copyright © 2005 网海拾贝.[新ICP备05003216号]. All Rights Reserved .