我想在排序之前显示一个简单的加载消息,但是排序后显示从无变为阻塞,即使我在后面调用排序。我甚至尝试使用setTimeout(2秒)更改显示然后调用虚函数来对事物进行排序。
function sort(i) {
document.getElementById("loading").style.display = "block";
array.sort(function(a, b) {
return a[i].localeCompare(b[i]);
});
}
答案 0 :(得分:1)
当JS忙于工作时,浏览器不急于重新绘制页面(假设可能会有其他DOM更改,他们应该一起批处理重绘)。
您需要释放事件循环以允许在两个语句之间重新绘制。
将来电转移到array.sort
并转换为函数,并在延迟后调用(例如setTimeout
或requestAnimationFrame
)。