Javascript $.ajax异步调用:false,需要超时

Javascript $.ajax异步调用:false,需要超时,javascript,jquery,ajax,asynchronous,timeout,Javascript,Jquery,Ajax,Asynchronous,Timeout,我有一个web应用程序,它使用ajax调用web服务。这个webservices返回我的应用程序的配置,因此ajax调用需要设置为{async:false}。 当我的服务器启动时,一切都正常,但如果不是,我的浏览器就会冻结。即使我在ajax调用设置中设置了超时。 我有一个错误处理函数,即使超时已过,也不会调用它 有人遇到过这种情况吗 @编辑:我的问题可以通过执行异步调用来解决,因为浏览器是单线程的,所以最好处理配置 在回调成功时返回,并处理错误回调中的任何错误 $.ajax({ url: "

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

有人遇到过这种情况吗


@编辑:我的问题可以通过执行异步调用来解决,因为浏览器是单线程的,所以最好处理配置 在回调成功时返回,并处理错误回调中的任何错误

$.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
  },
});

由于浏览器是单线程的,因此最好处理配置 在回调成功时返回,并处理错误回调中的任何错误

$.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
  },
});

好吧,我在那篇文章中找到了一个答案:这就是我要建议的。祝你好运;)为什么不异步执行,并在
success
回调函数中运行所需的任何代码呢?我不是那种“OMG使用异步实现一切”的白痴。不过,逻辑含义“ThisWebServices返回我的应用程序的配置,因此ajax调用需要设置为{async:false}”就我所知是无效的。好吧,我在那篇文章中找到了一个答案:这就是我要建议的。祝你好运;)为什么不异步执行,并在
success
回调函数中运行所需的任何代码呢?我不是那种“OMG使用异步实现一切”的白痴。不过,逻辑含义“ThisWebServices返回我的应用程序的配置,因此ajax调用需要设置为{async:false}”就我所知是无效的。一个应该与另一个无关。是的,这就是我要做的^^^哪个浏览器?他从未说过他的浏览器是什么。事实上,现在大多数浏览器都可以很好地处理同步请求,而不需要锁定。毕竟,对于标准请求,他们做得很好,不是吗??不管怎么说,这都不足以回答提出的问题。我没有指定浏览器。事实上,我使用IE(因为我的应用程序使用ActiveX…)。无论如何,这个答案使我能够从另一个角度来面对我的问题,从而解决它。@Theo:我的观点是,自90年代末以来,浏览器在请求过程中从未冻结。没有理由使用异步调用,特别是当它不必要地使逻辑复杂化时。在加载数据时,尝试执行任何其他将运行JavaScript的操作(例如,单击触发某些JavaScript代码的按钮)。无论您使用哪个浏览器,第二个操作都不会运行,直到Ajax调用完成。这就是浏览器冻结的意思。是的,这就是我要做的^^^哪个浏览器?他从未说过他的浏览器是什么。事实上,现在大多数浏览器都可以很好地处理同步请求,而不需要锁定。毕竟,对于标准请求,他们做得很好,不是吗??不管怎么说,这都不足以回答提出的问题。我没有指定浏览器。事实上,我使用IE(因为我的应用程序使用ActiveX…)。无论如何,这个答案使我能够从另一个角度来面对我的问题,从而解决它。@Theo:我的观点是,自90年代末以来,浏览器在请求过程中从未冻结。没有理由使用异步调用,特别是当它不必要地使逻辑复杂化时。在加载数据时,尝试执行任何其他将运行JavaScript的操作(例如,单击触发某些JavaScript代码的按钮)。无论您使用哪个浏览器,第二个操作都不会运行,直到Ajax调用完成。这就是浏览器冻结的意思。