jQuery的排序功能冻结(以前的)显示()文本(jQuery sort function free

2019-10-28 13:42发布

我整理物种的名单,但有时列表很大,它需要几秒钟的时间排序。 因此,我尝试添加一个小提示,让我们的用户知道有运行的是(他们应该等待)。 请你只检查此页: http://ibc.lynxeds.com/family/babblers-timaliidae并点击“排序和筛选[+]”。 然后,点击任意“排序”链接。

使用Opera,你会先得到一个消息,然后开始整理的品种,然后将信息变为一个不同的文本,这一切。 随着FF或者IE浏览器,不显示的第一条消息,你只知道CPU是做了一些工作,然后“完成!” 消息被示出和淡出。

因此,在最坏的情况下(慢CPU,大名单),你可能会等上20秒钟,然后你会得到完成! 消息(它会好得多,以显示“请稍候”第一,只是淡出完成时...)

调用排序功能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开始排序前显示“请稍候”的消息?

一个相关的问题是如何加快排序(这可能需要长达20秒的最大的家族,在我的酷睿2 ...)。

谢谢你的任何建议!

编辑:排序函数在这里找到:stackoverflow.com/questions/1531176

Answer 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.....

正如一个供参考,我得到缓慢运行脚本的浏览器警告消息,我让它运行和它完成。 这是几秒钟之前,我看到您发布的方式警告消息。



Answer 2:

首先,什么是您使用排序,即什么是sort()

其次,有没有可以用来设置一个回调函数“完成!” 排序后的消息已经完成?

第三,该排序可以是能够被加快,这取决于所使用的排序算法对sort() 。 如果你能提供更多的细节,我应该能够进一步帮助。



文章来源: jQuery sort function freezing a (previous) show() text