【问题标题】:Show a loading spinner while waiting for promise with cujojs?在等待 cujojs 的承诺时显示加载微调器?
【发布时间】:2015-10-14 21:29:25
【问题描述】:

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

当应用程序等待来自服务器的响应时,有什么方法可以自动显示微调器/加载器?角落里可能只是一些视觉提示,让用户知道一切都在搅拌。

我要避免的一件大事是每次打电话时都必须手动显示/隐藏加载微调器。

【问题讨论】:

    标签: javascript html typescript cujojs


    【解决方案1】:

    我可以想到两种方法:

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

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

    2) Pace.js 是“一个自动网页进度条”,您可以轻松地包含并从中选择一个主题:

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

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

    【讨论】:

    • 无论出于何种原因,无论我尝试什么,第一个选项都不会执行。使用速度,突然我的承诺停止触发。
    • 你包含 jQuery 吗? “每当即将发送 Ajax 请求时,jQuery 都会触发 ajaxStart 事件”。您可能会在浏览文档时找到所需的内容。我不知道为什么承诺会“停止触发”。你有任何错误吗?
    • JQuery 肯定被包括在内,并且没有抛出错误。似乎正在发生的事情是,Pace 与 Cujojs 所做的机制相同,它拦截 XHR“完成”消息而不是传递它们。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-29
    • 2017-03-16
    • 1970-01-01
    • 2020-07-19
    • 1970-01-01
    相关资源
    最近更新 更多