微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

这个问题是面向jQuery的,但不一定是唯一的.

简短的问题:

可以同步ajax调用阻止正常按钮被点击吗?我的测试显示它没有发生,但也许另一个浏览器会出现问题.

长期问题:

在我问过的另一个问题,how to block on ajax call (I want it to block),这些人说在某些情况下浏览器会阻止.

实际上连jQuery的docs都说:
请注意,同步请求可能会暂时锁定浏览器,并在请求处于活动状态时禁用任何操作.

我试图:
1.了解如何/为何会发生这种情况.
2.评估发生这种情况的可能性.

根据我的理解,这可能是不正确的:
我想如果我作为开发人员在ajax调用本身之前没有构建/更新UI,“封锁”javascript VM,从而延迟了UI构建/更新,那么“锁定”将发生在页面的UI中.正确与否?

解决方法:

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

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

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

你为什么不试试呢?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐