javascript - 调用函数时显示加载图像

标签 javascript jquery

我试图在 JavaScript 函数运行时显示加载图像。它需要处理大量数字,在速度较慢的电脑上可能需要几秒钟才能运行。

我认为这会起作用

function myFunction(){;
    $('#loading').show();
    // The bit that takes ages to run
    $('#loading').hide();
}

但是它并不能取消隐藏#loading div。

有更好的方法吗?

最佳答案

不幸的是没有。由于 JavaScript 是单线程的,因此在完成之前它不会更新加载图像的可见性,此时您已经告诉它再次隐藏。

此外,即使它确实有效,动画 GIF 也会因为同样的原因而无法播放,它只会显得卡住。

这里的最佳解决方案是使用 Web Workers,但是它们非常先进,并且只能在最新的浏览器中运行。

下一个最好的事情是按照以下方式做一些事情:

function myFunction() {
    $("#loading").show();
    setTimeout(function() {
        // long code here
        $("#loading").hide();
    },1); // give it a moment to redraw
}

关于javascript - 调用函数时显示加载图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16135941/

相关文章:

jquery - css水平下拉导航菜单

javascript - 从 Angular UI 路由访问 Controller

javascript - 如何使用firebased数据库事务?

javascript - 带有 equals 的简单正则表达式但不想使用 split

jquery - 从不隐藏 jquery qtip 工具提示

javascript - Jquery 函数在 ASP.NET 用户控件中没有被触发

javascript - 如何在 Javascript 中禁用 RadioButtonList 中的某个单选按钮

javascript - 在引用父页面中的 anchor 的 iframe 内链接?

jQuery 单击前 x 个按钮

javascript - 使用 JavaScript 优化我的 Tumblr 的加载以自定义样式