浅谈ASP.NET AJAX
正式给出调用后台类的语法:
类名.方法名(参数1,参数2,……,参数n,回调函数)
也就是说,调用上有两个差别:一是不需要使用变量接收返回值,二是要在所有参数后面加一个参数:回调函数。例如,有个类的方法,在后台调用是:
var1 = Class1.Method1(Para1,Para2);
换到前台JS调用时,就是如下的样子:
Class1.Method1(Para1,Para2,CallBackFunction);
那么,返回值到哪里去取呢?答案是到回调函数中,回调函数的原型是:回调函数名(返回值)。当然,存储返回值变量的名字是开发人员随意取的,然后就可以在回调函数中使用这个返回值变量了。例如,接着上面程序,写一个函数:
function CallBackFunction(result){}
则在这个函数中,result就含有Class1.Method1(Para1,Para2,CallBackFunction);的返回值。
为什么不直接调用类中的方法,而非要经过WebService呢?
上文我曾经说过,ASP.NET AJAX允许我们直接调用后台类中的方法,但是我们不提倡这样做,而是提倡经过WebService的过渡。其原因有如下几点:
1.要使得某个类可以被JS调用,也需要在其中做一些修改,如增加一些属性(Attribute)等,这会对这些类造成一种“污染”。
2.我们知道了,使用ASP.NET AJAX框架也需要从回调函数中获取返回值,而不是直接获取。考虑以下情况:如果某段JS需要调用三个后台方法完成一个操作,那么,就需要写三个回调函数。即要经过“调用第一个方法-第一个回调函数中调用第二个方法-第二个回调函数中调用第三个方法-第三个回调函数中取得返回值”。
相关推荐
ChinaGuanq 2020-06-08
lipin 2020-11-03
88254251 2020-11-01
VitaLemon 2020-10-15
PinkBean 2020-08-19
sfkong 2020-08-02
yanchuncheng 2020-07-30
doupoo 2020-07-28
bowean 2020-07-08
88520191 2020-07-05
Magicsoftware 2020-06-11
angqiuli 2020-06-06
whynotgonow 2020-06-06
whynotgonow 2020-06-03
陈旭阳 2020-06-02
airfling 2020-05-31
88520191 2020-05-20
RainyX 2020-05-19
89500297 2020-05-16