在循环中调用Webservices将不会执行自定义OnSuccess函数

时间:2008-11-02 07:49:33

标签: asp.net javascript jquery web-services

我有问题。 我正在使用VS2008进行编码。 我从我的Javascript页面调用webservices。 一个例子

Services.ChangeDropDownLists.GetNowPlayingMoviesByLocationSVC(
            blah, 
            OnSuccessMoviesByRegion, 
            OnError, 
            OnTimeOut
        );
执行后

进入函数OnSuccessMoviesByRegion。

但是如果我把服务放在一个循环中(一个简单的for循环)

   Services.ChangeDropDownLists.GetNowPlayingMoviesByLocationSVC(
                blah[i], 
                OnSuccessMoviesByRegion, 
                OnError, 
                OnTimeOut
            );

OnSucessMoviesByRegion函数不会执行(但服务调用会成功执行n次 但我必须有函数cos我通过它返回一个值。

我错过了什么? 这是典型的行为吗? 任何替代方案?

2 个答案:

答案 0 :(得分:1)

我猜有某种并发问题。可能你会在最后一个请求结束之前触发下一个请求。

我认为你必须重写循环。尝试移动该代码,仅调用第一个请求,然后使用“OnSuccess”函数每次调用下一个请求。

答案 1 :(得分:1)

Naveen,我在这里回答你follow-up question。我可以想到两个选择:

  1. 尝试打一个电话打包你的数据(发送整个blah数组并在服务器上处理它)。

  2. 使用计数器变量,每次在“OnSucces”客户端处理程序中递减,如果此计数器变量达到0,则停止。