1

这个问题是面向 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,那么页面的 UI 会发生“锁定”,这会“阻止”javascript VM,从而延迟 UI 构建/更新。正确与否?

4

1 回答 1

3

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

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

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

你为什么不试试呢?

于 2012-08-31T11:39:57.873 回答