如何在纯JavaScript中进行"同步"AJAX调用时显示"正在加载"?

jon*_*ham 4 javascript ajax asynchronous xmlhttprequest synchronous

我想确保结果显示给用户,所以我进行同步AJAX调用.使用异步AJAX显示"加载"指示器非常简单(示例无处不在),但是当我使用XMLHttpRequest的同步AJAX调用时,加载指示器GIF图像根本不显示.

有些人说在进行同步调用时不可能显示指示符(阻止直到服务器响应).但我只是想问一下是否有办法做到这一点.

Tri*_*ych 8

这是"不可能的",因为Javascript是单线程的,同步调用阻止了对UI的更新.

但是,您可以在启动同步AJAX调用之前显示动画"加载"图形,并在成功或失败时将其删除.我相信大多数浏览器都能够继续渲染动画gif,即使技术上阻止了同步调用.