浅谈ASP.NET AJAX

开发 后端
本文介绍ASP.NET AJAX,调用上有两个差别:一是不需要使用变量接收返回值,二是要在所有参数后面加一个参数:回调函数。

正式给出调用后台类的语法:

类名.方法名(参数1,参数2,……,参数n,回调函数)

也就是说,调用上有两个差别:一是不需要使用变量接收返回值,二是要在所有参数后面加一个参数:回调函数。例如,有个类的方法,在后台调用是:

  1. var1 = Class1.Method1(Para1,Para2); 

换到前台JS调用时,就是如下的样子:

  1. Class1.Method1(Para1,Para2,CallBackFunction); 

那么,返回值到哪里去取呢?答案是到回调函数中,回调函数的原型是:回调函数名(返回值)。当然,存储返回值变量的名字是开发人员随意取的,然后就可以在回调函数中使用这个返回值变量了。例如,接着上面程序,写一个函数:

  1. function CallBackFunction(result){} 

则在这个函数中,result就含有Class1.Method1(Para1,Para2,CallBackFunction);的返回值。

为什么不直接调用类中的方法,而非要经过WebService呢?

上文我曾经说过,ASP.NET AJAX允许我们直接调用后台类中的方法,但是我们不提倡这样做,而是提倡经过WebService的过渡。其原因有如下几点:

1.要使得某个类可以被JS调用,也需要在其中做一些修改,如增加一些属性(Attribute)等,这会对这些类造成一种“污染”。

2.我们知道了,使用ASP.NET AJAX框架也需要从回调函数中获取返回值,而不是直接获取。考虑以下情况:如果某段JS需要调用三个后台方法完成一个操作,那么,就需要写三个回调函数。即要经过“调用第一个方法-第一个回调函数中调用第二个方法-第二个回调函数中调用第三个方法-第三个回调函数中取得返回值”。

这个过程很麻烦。而使用WebService后,我们可以将这个三个方法封装到一个WebService方法里,因为WebService是支持“变量=类名.方法名”这种传统的调用方法的。这样经过WebService过渡,JS中只要一个回调函数就可以了。

3.从本身特性上看,WebService比普通类更适合作为ASP.NET AJAX的后台方法。

【编辑推荐】

  1. 浅谈ASP.NET MVC框架
  2. 介绍ASP.NET MVC中的MvcAjaxPanel
  3. ASP.NET MVC框架拯救UpdatePanel
  4. 用ASP.NET MVC源代码寻找解决方案
  5. ASP.NET MVC框架的ActionInvoker
责任编辑:佚名 来源: IT168
相关推荐

2009-07-21 09:53:55

ASP.NET AJAWCF服务

2009-01-16 13:17:16

AjaxASP.NET.NET

2009-04-21 09:37:50

ASP.NETAjaxJavaScript

2009-07-24 13:41:15

ASP.NET AJA

2009-07-22 16:25:41

ASP.NET AJA

2009-07-22 16:17:39

ASP.NET AJA

2009-07-22 16:05:34

ASP.NET AJA

2009-07-24 10:52:42

ASP.NET ISA

2009-07-20 15:30:11

ASP.NET应用

2009-07-22 15:58:52

ASP.NET AJA

2009-07-31 13:24:43

ASP.NET AJA

2009-07-29 13:50:26

UpdatePanelASP.NET

2009-07-20 10:16:13

配置ASP.NET A

2009-07-28 09:02:32

asp.net aja

2009-08-05 15:29:33

ASP.NET For

2009-08-10 10:19:47

ASP.NET组件设计

2009-07-28 17:49:30

ASP.NET定期回收

2009-07-20 17:12:17

ASP.NET访问数据

2009-07-23 15:44:39

ASP.NET MVC

2009-07-28 16:03:23

ASP.NET状态服务
点赞
收藏

51CTO技术栈公众号