我正在排序物種列表,但有時列表很大,需要幾秒鐘對它進行排序。因此,我嘗試添加一條小通知讓我們的用戶知道正在運行的東西(他們應該等待)。請檢查此頁面:http://ibc.lynxeds.com/family/babblers-timaliidae 然後點擊「排序和過濾[+]」。然後,點擊任何「排序」鏈接。jQuery排序函數凍結一個(前一個)顯示()文本
使用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);
});
它的工作原理完美的歌劇。我不明白爲什麼在其他瀏覽器中沒有顯示第一條消息。
我能做些什麼來強制FF和IE在開始排序之前顯示「請稍候」消息?
一個相關的問題是如何加快排序(最大的家庭可能需要20秒,在我的core2duo ...)。
謝謝你的任何建議!
編輯:排序函數在這裏找到:stackoverflow.com/questions/1531176
我會在本地嘗試,但預期的結果是什麼? – 2009-10-07 11:57:34
使用ID會更快,並且會限制選擇,這樣做的目的是避免走遍整個DOM – 2009-10-07 12:00:29
您也可以在速度上有所提升通過選擇背景 請參閱Brandon Aarons博客瞭解上下文選擇的一些細節: http://品牌onaaron.net/blog/2009/06/24/understanding-the-context-in-jquery – 2009-10-07 12:16:59