【问题标题】:Get second ajax call response before previous ajax call在上一个 ajax 调用之前获取第二个 ajax 调用响应
【发布时间】:2016-06-22 08:26:36
【问题描述】:

我有一个 ajax 调用,用于执行任务并相应地使用进度状态更新表。现在我有另一个 ajax 调用从表中获取状态以向用户显示任务进度状态。第二个每 2 秒重复调用一次调用,直到任务完成。但是我无法向用户显示任务进度状态,因为第二个 ajax 调用一直在加载,直到第一个 ajax 调用得到响应。

我在以下链接的stackoverflow中发现了一个类似的问题,有人建议这可能是由于会话锁定而使用 session_write_close() 可能会起作用。我尝试了它,但没有成功。 Prevent jQuery AJAX call from waiting for previous call to complete

有没有办法在第一个 ajax 调用仍在处理时获得第二个 ajax 调用的响应?

【问题讨论】:

  • 把相关代码贴在这里。
  • 这听起来像是服务器端问题。
  • 我尝试了 async:true 但问题仍然存在

标签: php jquery ajax


【解决方案1】:

你可以使用 jQuery 的延迟概念来控制你的 Ajax 函数流

var defered = jQuery.Deferred();

function your_function(){
 //do something!
 defered.reslove()
 return defered.promise
} 
your_function.then(function(){
 //this will not run till your_function is done 
})

通过https://api.jquery.com/jQuery.Deferred/了解更多信息

【讨论】:

  • 但是我需要每隔 2s 调用第二个 ajax 调用以获取表更新。这可以通过延迟来完成吗?
猜你喜欢
  • 2020-10-16
  • 2019-01-27
  • 1970-01-01
  • 2015-06-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-13
  • 2016-05-05
相关资源
最近更新 更多