ajax - 为什么请求是同步执行的?

时间:2017-10-23 19:04:13

标签: jquery ruby-on-rails ajax coffeescript

我在一个页面上有几个<select>,我想用Ajax填充它。

问题陈述:有些ajaxcalls最多可能需要两分钟才能执行。结果导致其余的调用(只需要一秒钟)在之前的ajax调用之后“执行”。

enter image description here

在网络表中,获取BSCS,然后在“之后”获取EPCOMON。沿着这条线,每个请求只有在前一个请求完成后才会发出。我已经完成了测试并验证了BSCS确实会在2分钟后返回,例如,SAP会在1秒后返回。

如何才能真正异步地提出这些请求?

我从一个简单的jQuery $.get调用开始:

for select2 in $("select.select2-package[name^='component_bundle']")
  product = select2.getAttribute('data-product')
  $.get "/bundles/fetch_components.json?product=#{product}", (resp) ->
    $(product).val(resp)

最后继续看看我是否可以强制异步(如果有什么东西覆盖了默认的jQuery异步true值)

$.ajax
  url: "/bundles/fetch_components.json?product=#{product}"
  dataType: 'application/json'
  cache: true
  ifModified: false
  async: true
  success: (resp) ->
    console.log(resp.responseText)
    $("#component_bundle_#{product}").val(resp.responseText)
  error: (resp) ->
    console.log(resp)
    portal.showErrorDialog("ERROR", resp.responseText)

两次尝试都会产生相同的结果。 每个ajax调用一个接一个地执行。如何让这些请求真正异步工作?

0 个答案:

没有答案