何时适合使用同步ajax?

时间:2010-11-30 17:16:38

标签: javascript jquery

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

  

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

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

4 个答案:

答案 0 :(得分:21)

我能想到的唯一合理的例子(无法以其他方式解决)是在window.onbeforeunload中进行呼叫,您需要它是同步的,或者页面将继续,请求永远不会完成。

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

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

答案 1 :(得分:-1)

总而言之,请不要使用@Brandon所说的同步请求:它们是避免进行回调的便宜/简单/快速方式。此外,现代浏览器会在发出同步请求时显示警告,我们不喜欢这样做。使您的世界异步。

答案 2 :(得分:-2)

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

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

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

答案 3 :(得分:-4)

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