2011-04-12 31 views
1

我有一个web应用程序调用ajax web服务。这个web服务返回我的应用程序的配置,所以ajax调用需要设置为{async:false}。 当我的服务器启动时,一切正常,但如果不是,我的浏览器就会冻结。即使我在ajax呼叫设置中设置了超时时间。 我有一个错误处理函数,即使超时通过也不会被调用。

有人曾经遇到过这种情况吗?

@Edit:我的问题可以通过执行异步调用

+0

好吧,我发现那种在后一个答案:http://stackoverflow.com/questions/2195259/ajax-synchronous-call-with-timeout – Celero 2011-04-12 12:15:41

+0

这就是我要建议。祝你好运;) – 2011-04-12 12:17:42

+0

为什么不做异步,并有''成功'回调函数中运行所需的任何代码? – 2011-04-12 12:18:53

回答

1

当浏览器是单线程这将是更好地处理在回调成功返回的配置 ,并在错误回调处理任何错误来解决。

$.ajax({ 
    url: "mydomain.com/url", 
    type: "GET", 
    dataType: "json", 
    data: $.param($("Element or Expression")), 

    complete: function() { 
    //called when complete 
    }, 

    success: function() { 
    //called when successful 
}, 

    error: function() { 
    //called when there is an error 
    }, 
}); 
+0

是的,这就是我要做的^^ – Celero 2011-04-12 12:34:20

+0

哪个浏览器?他从未说过他的浏览器是什么。实际上,现在大多数浏览器都可以处理同步请求_just fine_,而无需锁定。毕竟,他们对标准要求没有问题,不是吗?无论如何,这甚至不会回答提出的问题。 – 2011-04-12 14:04:14

+0

我确实没有指定浏览器,我使用IE(因为我的应用程序使用ActiveX ...)。无论如何,这个答案使我能够以另一种观点面对我的问题,所以解决它。 – Celero 2011-04-12 14:14:39