我刚刚在阅读有关jQuery同步ajax调用的另一个问题,然后产生了疑问:
什么情况下使用同步版本的ajax调用是有益/必要的?
最好给出一个示例,并说明为什么同步优于标准ajax。
我刚刚在阅读有关jQuery同步ajax调用的另一个问题,然后产生了疑问:
什么情况下使用同步版本的ajax调用是有益/必要的?
最好给出一个示例,并说明为什么同步优于标准ajax。
我能想到的唯一合理的例子(不能通过其他方式解决)是在 window.onbeforeunload
中发起调用,此时你需要它是同步的,否则页面将转移并且请求将永远无法完成。
在这种特定情况下,如果使用标准/异步行为,你几乎可以肯定请求会因提前终止而没有任何影响,或者根本不会与服务器联系。
我并不是说我支持这样做,恰恰相反(因为它会对用户的浏览速度产生负面影响)。但是……这里没有太多选择。
同步ajax通常用于从服务器检索需要进一步继续处理客户端代码的值。在这种情况下,ajax调用将阻塞,直到调用返回所需的值为止。例如:
JavaScript函数需要计算员工薪资: 第1步:从表单获取员工ID 第2步:通过同步服务器调用传递emp.id以获取其工资/小时 第3步:将薪资率乘以工作小时数
可以看出,在完成服务器调用之前无法计算总薪资,因此这应该是一个同步函数,虽然如果使用jQuery,则可以处理onSuccess以异步计算薪资,但在此过程中处理将继续,如果有要显示薪资的消息框,它将为空...