在等待 cujojs 的承诺时显示加载微调器?

Show a loading spinner while waiting for promise with cujojs?

我正在开发一个 Web 应用程序,我在其中使用 cujojs 及其 whenjs 扩展进行异步处理。但是,我通常只是绑定到我们的服务接口之一,让它们完成所有繁重的工作。

有什么方法可以在应用程序等待服务器响应时自动显示 spinner/loader 吗?角落里可能只是一些视觉提示,让用户知道一切都在进行中。

我想避免的最重要的事情是每次打电话时都必须手动 show/hide 加载微调器。

我可以想到两种方法:

1) 使用全局ajax event handlers 监听异步activity。您可以将它们绑定到您的文档并因此执行一些 js,无论正在执行什么 ajax 调用:

$(document).on('ajaxStart', function() {
    // show your spinner
});
$(document).on('ajaxComplete', function() {
    // hide your spinner
});

2) Pace.js 是 "An automatic web page progress bar" 您可以轻松添加并从中选择主题:

<script src="/pace/pace.js"></script>
<link href="/pace/themes/pace-theme-barber-shop.css" rel="stylesheet" />

在他们的 github 上抓住一个主题特别容易。 每次加载页面或等待另一个响应时,您选择的动画都会触发。