2016-04-03 16 views
0

Bir sıralamadan önce basit bir yükleme iletisi görüntülemek istiyorum, ancak sıralamadan sonra sıraladığımdan sonra sıralamadan sonra engelleme görüntülenmiyor. Ekranı değiştirmek için setTimeout'u (2 saniye) kullanmayı denedim, ardından maddeleri sıralamak için kukla işlevini çağırdım.style.display Array Sıralamasının ardından Değişen

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

Yürütülebilir demo/snippet veya [JSFiddle] (https://jsfiddle.net/) yükleyebilir misiniz? – Rayon

cevap

1

Tarayıcılar JS (muhtemelen DOM onlar rötuş için bir araya toplu gerektiği Bu değişmediği diğer olacağı varsayımıyla) yoğun çalışma iken sayfayı yeniden boyamak için acele etmeyin.

İki deyim arasında bir yeniden boyamaya izin vermek için olay döngüsünü boşaltmanız gerekir.

Aramayı array.sort aramasına getirin ve bir işlevden sonra çağırın (ör. setTimeout veya requestAnimationFrame).

+0

SetTimeout'u kullanmak gerçekten işe yaradıysa, işlevi bir işlevi çağırmak yerine parametrenin içine koymak zorunda kaldım. Milisaniye miktarı 0 oldu. Teşekkürler! –