我们有一个简单的ASP.Net WCF Ajax启用的Web服务,它通过生成的JavaScript代理调用。该服务执行数据库存储过程调用以返回整数记录数。当从客户端(Windows 7上的IE8)调用调用并且DB调用需要时间时,我无法调用任何其他JavaScript函数。例如,其中一个下拉列表有一个onchange事件,直到Web服务调用完成后才会触发该事件
我是否错误配置了我的WCF服务并且无意中使其成为同步呼叫?或者我假设WCF Ajax调用是ansync错误的?
示例代码
var count = MyNameSpace.MyService.GetCount(param1, onComplete);
function onComplete(result){
$get('countLabel').text = result;
}
MyNameSpace.MyService is the automagically generated proxy
答案 0 :(得分:2)
答案是否定的,但事实并非如此。呼叫应该异步,您应该通过回调接收完成或失败的通知。如果你遇到这个问题,那么似乎有些严重错误。
唯一需要注意的是旧版浏览器在与单个域通信时确实有两个连接限制,因此如果您同时进行多个呼叫,则在前两个完成之前不会发出第三个+呼叫。这些连接与浏览器可能正在检索的其他资源共享,例如图像和样式表。在IE8 +,Chrome和Mozilla中,我相信连接数已增加到8个。