数组排序后显示更改

style.display changing after Array Sort

本文关键字:显示 数组排序      更新时间:2023-11-16

我想在排序前显示一条简单的加载消息,但在排序后显示从none变为block,即使我在之后调用排序。我甚至尝试使用setTimeout(2秒)来更改显示,然后调用一个伪函数来对内容进行排序。

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

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

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

将对array.sort的调用移动到函数中,并在延迟后调用它(例如使用setTimeoutrequestAnimationFrame)。