何时适合使用同步ajax?

我刚刚阅读了关于jQuery的同步ajax调用的另一个问题,我想知道:

什么情况使ajax调用的同步版本有益/必要?

理想情况下,我想要一个例子,为什么同步比标准的ajax更好。

我能想到的唯一合理的例子(不能以另一种方式解决)是在window.onbeforeunload进行调用,在那里你需要它是同步的,否则页面将继续运行并且请求永远不会完成。

在使用标准/异步行为的这种特定情况下,您几乎可以确定请求会因为产生任何影响而过早死亡,或者曾经联系过服务器。

我不是说我赞成这样做,恰恰相反(因为它会对用户的浏览速度产生负面影响)。 但是……这里没有多少选择。

同步ajax通常用于从服务器检索值,以进一步继续处理客户端代码。 在这种情况下,ajax调用将阻塞,直到调用返回所需的值。 例:

一个javascript函数需要为员工计算工资:step1:从表单step2获取员工id:通过emp.id进行同步服务器调用以获得他的工资/小时step3:将工资率乘以工作小时数

正如您所看到的,除非服务器调用已完成,否则无法计算总薪水,因此这应该是同步函数,但如果使用jquery,可以处理onSuccess以异步计算薪水,但如果您有一个消息框,则处理将继续要显示薪水,它会显示为空…

我猜想在你想要执行一些ajax调用但你有一个依赖于另一个调用结果的调用的场景中它会很好。 如果您同步执行它们,您可以等待独立完成在从属调用触发之前。