这个问题是面向jQuery的,但不一定是排他的。
简短的问题:
同步ajax调用会阻止正常按钮被单击吗? 我的测试表明这没有发生,但也许其他浏览器出了问题。
长的问题:
在我询问的另一个问题中,如何阻止ajax调用(我希望它阻止),这些家伙说浏览器在某些情况下会阻止。
实际上,甚至jQuery 的文档都说: Note that synchronous requests may temporarily lock the browser, disabling any actions while the request is active.
Note that synchronous requests may temporarily lock the browser, disabling any actions while the request is active.
我正在尝试: 1.了解发生这种情况的方式/原因。 2.评估发生这种情况的可能性。
根据我的理解,这可能是不正确的: 我想如果我(作为开发人员)没有在ajax调用本身之前“构建”或“更新” UI(会“阻止” JavaScript VM)的情况下,页面UI就会发生“锁定”,因此延迟了用户界面的构建/更新。正确与否?
是的,它会的。当未完成同步请求时,浏览器将等待它返回。发生这种情况的可能性为100%,但是如果您的请求返回的速度足够快,则可能不会那么明显。事实是,您不能指望一个快速返回的请求。
这就是ajax调用的重点。第 一个 表示异步,表示“不阻塞”。
由于ajax调用是异步的,因此您的代码可以在请求返回时的任何位置,这意味着您需要一种在请求返回时处理响应的方法。这就是为什么您使用 回调 处理响应的原因。
你为什么不尝试呢?