小编典典

同步(阻止)ajax调用可以阻止浏览器的UI吗?

ajax

这个问题是面向jQuery的,但不一定是排他的。

简短的问题:

同步ajax调用会阻止正常按钮被单击吗? 我的测试表明这没有发生,但也许其他浏览器出了问题。

长的问题:

在我询问的另一个问题中,如何阻止ajax调用(我希望它阻止),这些家伙说浏览器在某些情况下会阻止。

实际上,甚至jQuery 的文档都说: Note that synchronous requests may temporarily lock the browser, disabling any actions while the request is active.

我正在尝试:
1.了解发生这种情况的方式/原因。
2.评估发生这种情况的可能性。

根据我的理解,这可能是不正确的:
我想如果我(作为开发人员)没有在ajax调用本身之前“构建”或“更新” UI(会“阻止” JavaScript
VM)的情况下,页面UI就会发生“锁定”,因此延迟了用户界面的构建/更新。正确与否?


阅读 259

收藏
2020-07-26

共1个答案

小编典典

是的,它会的。当未完成同步请求时,浏览器将等待它返回。发生这种情况的可能性为100%,但是如果您的请求返回的速度足够快,则可能不会那么明显。事实是,您不能指望一个快速返回的请求。

这就是ajax调用的重点。第 一个 表示异步,表示“不阻塞”。

由于ajax调用是异步的,因此您的代码可以在请求返回时的任何位置,这意味着您需要一种在请求返回时处理响应的方法。这就是为什么您使用 回调
处理响应的原因。

你为什么不尝试呢?

2020-07-26