在Array Sort之后更改style.display

时间:2016-04-03 08:59:36

标签: javascript function display operator-precedence

我想在排序之前显示一个简单的加载消息,但是排序后显示从无变为阻塞,即使我在后面调用排序。我甚至尝试使用setTimeout(2秒)更改显示然后调用虚函数来对事物进行排序。

function sort(i) {
    document.getElementById("loading").style.display = "block";
    array.sort(function(a, b) {
        return a[i].localeCompare(b[i]);
    });
}

1 个答案:

答案 0 :(得分:1)

当JS忙于工作时,浏览器不急于重新绘制页面(假设可能会有其他DOM更改,他们应该一起批处理重绘)。

您需要释放事件循环以允许在两个语句之间重新绘制。

将来电转移到array.sort并转换为函数,并在延迟后调用(例如setTimeoutrequestAnimationFrame)。