【问题标题】:asp.net web services javascript wrapper async problemasp.net web services javascript wrapper async问题
【发布时间】:2011-08-04 08:07:13
【问题描述】:

我正在为 asp.net 网络服务使用 asp.net 生成的 javascript 包装器。在 javascript 中,如何 "wait" 为几个异步 Web 服务包装器完成返回一些 json 数据? javascript中是否有一种通用而优雅的方式来处理等待异步函数?

我尝试过使用 jquery $.ajax ,它可以选择使用同步而不是异步。使用同步 $.ajax mode 的优缺点是什么?

我知道每个包装器都有一个成功事件处理程序和一个失败事件处理程序。但是我发现许多成功事件处理程序的嵌套很难阅读。我想知道其他用户是否觉得嵌套很尴尬......

【问题讨论】:

标签: javascript asp.net web-services asynchronous asp.net-ajax


【解决方案1】:

使用同步 $.ajax 模式的优缺点是什么?

缺点是在所有浏览器(Chrome、AFAIK 除外)中,只有一个线程用于处理 JavaScript,因此当您同步等待 Web 服务调用完成时,您的页面将完全无响应。这种情况会导致浏览器中出现“脚本无响应”警告,最终可能导致用户在 JavaScript 执行时停止 JavaScript,或完全关闭您的网站。

【讨论】:

  • 如果调用与回调异步,实现同步的正确方法是什么?我想即使是异步调用也可能需要很长时间才能返回;如果是 asp.net webservice js 包装器,是否有超时选项/回调?
  • 在 jquery 中,您可以全局或在每个请求上设置错误回调,其中一个参数将是状态(“超时”、“错误”、“中止”或“解析错误” )。您还可以全局或在每个请求上设置超时。请参阅文档:api.jquery.com/jQuery.ajax
猜你喜欢
  • 2017-05-23
  • 2012-02-15
  • 2018-03-24
  • 1970-01-01
  • 1970-01-01
  • 2013-06-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多