我正在对物种列表进行排序,但有时列表很大,需要几秒钟才能对其进行排序。因此,我尝试添加一个小通知,让我们的用户知道有些东西正在运行(他们应该等待)。请查看此页:http://ibc.lynxeds.com/family/babblers-timaliidae 然后单击“排序和过滤[+]”。然后,点击任何“排序依据”链接。
使用Opera,您将首先收到消息,然后开始对物种进行排序,然后消息将更改为不同的文本,这就是全部。使用FF或IE时,不显示第一条消息,您只知道CPU正在做一些工作,然后“完成!”消息显示并淡出。
因此,在最坏的情况下(慢速CPU,大型列表),您可能需要等待20秒然后才能完成!消息(最好先显示“请稍候”,然后在完成时淡出...)
调用sort函数的JQuery代码是:
$(".s_alf_eng").toggle(
function() {
$(".warning").text("Sorting... please wait").show(); //warning is an empty div
$('.media-status-specie li').sort(sortAscending1).appendTo('.media-status-specie');
$(".warning").text("Sorting... Done!").fadeOut(700);
},
function() {
$(".warning").text("Sorting... please wait").show();
$('.media-status-specie li').sort(sortDescending1).appendTo('.media-status-specie');
$(".warning").text("Sorting... Done!").fadeOut(700);
});
它在Opera中非常完美。我不明白为什么在其他浏览器中没有显示第一条消息。
在开始排序之前,如何强制FF和IE显示“请稍候”消息?
一个相关的问题是如何加快排序(对于最大的家庭,我的core2duo可能需要20秒)。
感谢您的任何建议!
编辑:排序功能在这里:stackoverflow.com/questions/1531176
答案 0 :(得分:1)
正如测试一样,如果你改变会发生什么:
$('.media-status-specie li').sort
到
$('.media-status-specie').find('li').sort....
或者,更好的是:
<ul id="media-status-specie" class="media-status-specie">
然后:
$('#media-status-specie').find('li').sort.....
正如一个FYI,我收到一条关于缓慢运行脚本的浏览器警告消息,我让它运行并完成。在我看到你发布的警告信息之前几秒钟。
答案 1 :(得分:0)
首先,您使用什么来排序sort()
中的内容?
其次,是否有可用于设置“完成!”的回调函数。排序完成后的消息?
第三,根据sort()
中使用的排序算法,可以加快排序速度。如果您能提供更多详细信息,我应该能够提供进一步的帮助。