javascript方法排序:任务结束
我通过array.sort()方法对JavaScript中的一个大数组进行排序 调用sort()时,我想显示一个加载程序gif,以显示脚本正在运行 然后我想隐藏这个加载器并抛出一个函数:当任务完成时 我们如何通过sort()方法知道新数组何时可用javascript方法排序:任务结束,javascript,sorting,methods,Javascript,Sorting,Methods,我通过array.sort()方法对JavaScript中的一个大数组进行排序 调用sort()时,我想显示一个加载程序gif,以显示脚本正在运行 然后我想隐藏这个加载器并抛出一个函数:当任务完成时 我们如何通过sort()方法知道新数组何时可用 // This will sort by Year function sortByYear(a, b){ var aYear = parseFloat(a.year) var bYear = parseFloat(b.year)
// This will sort by Year
function sortByYear(a, b){
var aYear = parseFloat(a.year)
var bYear = parseFloat(b.year)
if (aYear < bYear) {
return 1;
} else if (aYear > bYear) {
return -1;
} else {
return 0;
}
}
//这将按年份排序
函数sortByYear(a,b){
var aYear=parseFloat(每年)
var bYear=parseFloat(b.年)
如果(一年<一年){
返回1;
}否则如果(一年>一年){
返回-1;
}否则{
返回0;
}
}
我猜这是一个同步方法,因此当方法返回时,数组可用
你可以这样做:
$("#loadingGIF").show();
var sortedArray = sourceArray.sort(...);
$("#loadingGIF").hide();
但这不起作用,因为浏览器在方法完成之前不会刷新屏幕。你应该这样做:
$("#loadingGIF").show();
// wait a few milliseconds, just enought to the browser process next requests,
// like drawing the screen
setTimeout(executeSort, 100);
function executeSort()
{
var sortedArray = sourceArray.sort(...);
$("#loadingGIF").hide();
}
仅供参考,gif动画在执行JS函数时停止。我认为sort()方法是同步的。只要显示加载程序、排序和隐藏加载程序,它就会工作。哦,Teemu是对的,在JS执行过程中视口被冻结。我刚刚偶然发现: