【问题标题】:Are WCF Ajax Calls blocking calls?WCF Ajax 调用是否阻塞调用?
【发布时间】:2009-11-06 01:31:02
【问题描述】:

我们有一个简单的 ASP.Net WCF Ajax 启用 Web 服务,它通过生成的 JavaScript 代理调用。该服务执行数据库存储过程调用以返回整数计数的记录。当从客户端(Windows 7 上的 IE8)调用调用并且 DB 调用需要一段时间时,我无法调用任何其他 JavaScript 函数。例如,其中一个下拉菜单有一个 onchange 事件,直到 Web 服务调用完成后才会触发

我是否错误地配置了我的 WCF 服务并无意中将其设为同步调用?还是我假设 WCF Ajax 调用是异步错误的?

示例代码

var count = MyNameSpace.MyService.GetCount(param1, onComplete); 

function onComplete(result){
    $get('countLabel').text = result;
}

MyNameSpace.MyService is the automagically generated proxy

【问题讨论】:

  • 您是如何进行 AJAX 调用的?代码示例?
  • MyNameSpace.MyService.GetCount(param1, onComplete); onComplete 是回调函数。 MyNameSpace.MyService 是自动生成的代理
  • @rams:请将您的代码示例添加到原始问题中并将它们格式化为代码 - 在此评论中,它们不必要地难以阅读.....

标签: asp.net ajax wcf


【解决方案1】:

答案是否定的,他们不是。调用应该异步进行,您应该通过回调收到完成或失败的通知。因此,如果您遇到此问题,则似乎有些严重错误。

唯一需要注意的是,旧版浏览器在与单个域通信时确实有两个连接限制,因此如果您同时进行多个调用,则在前两个调用之一完成之前不会发出第三个以上的调用。这些连接与浏览器可能正在检索的其他资源共享,例如图像和样式表。在 IE8+、Chrome 和 Mozilla 中,我相信连接数已增加到 8 个。

【讨论】:

  • Drew,感谢您证实了我的怀疑并解释了合理性。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-16
  • 1970-01-01
  • 2012-11-09
  • 2013-11-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多