2011-04-13 32 views
2

我正在使用asp.net生成javascript包装为asp.net网络服务。在JavaScript中,如何为几个异步Web服务包装器"wait"完成返回一些json数据?有没有在JavaScript中处理等待异步函数的一般和优雅的方式?asp.net web服务javascript包装异步问题

我试过使用jquery $.ajax,它有一个选项可以使用同步而不是异步。什么是使用同步$.ajax mode的亲和缺点?

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

+0

我已经把一些想法了审查在[http://stackoverflow.com/questions/8211687/structure-async-callbacks-in-javascript-synching-the-asynch][1] [1]:http://stackoverflow.com/questions/8211687/structure-async-callbacks-in-javascript-synching-the-asynch – bnieland 2011-11-21 12:24:35

回答

2

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

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

+0

如果调用与回调是异步的,实现同步的正确方法是什么?我想即使异步调用可能需要很长时间才能返回;在asp.net webservice js包装的情况下,它有超时选项/回调? – user670800 2011-04-13 01:23:23

+0

在jQuery中,您可以在全局或每个请求中设置错误回调,其中一个参数将为状态(“超时”,“错误”,“中止”或“parsererror”)。您也可以在全局或每个请求上设置超时。请参阅文档:http://api.jquery.com/jQuery.ajax/ – 2011-04-13 04:00:40