我正在玩Ajax-Enabled WCF services。到目前为止,我已经设法使用小型客户端应用程序创建和使用我的服务。然而,在阅读msdn网站上的“How-to”页面时,我遇到了这段代码:
function Button1_onclick() {
var service = new SandwichServices.CostService();
service.CostOfSandwiches(3, onSuccess, null, null);
}
function onSuccess(result) {
alert(result);
}
我在调用函数时无法理解(甚至找不到有关)null, null
参数的信息。 3
是要传递给服务函数的参数,onSuccess
是在成功回调时调用的函数,但那些2个空参数是什么?
答案 0 :(得分:2)
最后两个参数分别针对下面提到的问题引用onFailure
和Usercontext
。
service.CostOfSandwiches(3,onSuccess,null,null);
OnFailure :
顾名思义,如果ajax调用由于网络问题,服务器错误,超时等而失败,那么函数将在此处作为参数调用。
UserContext:
通常所有ajax调用(我的意思是[WCF Ajax]过于依赖于ajax调用)使用此参数。因为,有一种主要方法可以调用$.ajax
,在您的情况下,它是Button1_onclick
。所以到目前为止,定义的所有变量在回调(成功或失败)中都不可用,因为这些变量在ajax调用完成时被回调,但是为了使这些调用知道先前定义的变量,上下文选项用于传递它们。
示例:
function Button1_onclick() {
var service = new SandwichServices.CostService();
var some_var = "someval"; // on successcallback if you are trying to access this, it will show error.
service.CostOfSandwiches(3, onSuccess, null, null);
}
要在成功回调中使用此功能,您必须将其作为usercontext对象传递 - 例如service.CostOfSandwiches(3, onSuccess, null, some_var);
OnSuccessMethod -
function onSuccess(result,usctx,methodname)
{
if (usctx == "someval")
{
alert(result);
}
}
有关一般ajax意义上的上下文选项的更多信息,请参阅 - How to pass context in jquery ajax success callback function
答案 1 :(得分:0)
它们是成功,错误和userContext的回调。您可以在"访问WCF Web服务"下阅读更多here。部分。