2011-02-04 81 views
0

我得到了非常沉重的jQuery代碼。一切都被預裝到客戶端,然後進行排序使用jQuery:顯示正在執行客戶端腳本時加載GIF圖像

$('.acc_trigger').hide(); 
$('#taxonomylist ul li').each(function() { 
    $href = $("a", this).attr("href"); 
    if (!$href.match(/^.*\/activity\/.*[a-z,A-Z]$/i)) { 
     $(this).hide(); 
    } 
}); 
$('#taxonomylist ul li a').click(function() { 
    $href = $(this).attr("href"); 
    $('.acc_trigger').hide(); 
    $regex = new RegExp("^" + $href + "+$"); 

    $('div.taxonomy ul li').each(function() { 
     $href_taxonomy = $("a", this).attr("href"); 
     if ($href_taxonomy == $href) { 
      $(this).parents().filter('.views-field-webform-form-body').prev().show(); 
     } 
    }); 

    $('#taxonomylist ul li').each(function() { 
     $href_sub = $("a", this).attr("href"); 
     if (!$href_sub.match($regex)) { 
      $(this).show(); 
     } 
    }); 

    return false; 
}); 

如何顯示加載圖片時,我的JavaScript代碼的工作?或者,也許你看到我的代碼中可以改進的東西?

回答

0

不知道這是什麼jQuery是在工作時,很難提出任何改進。

不過,我已經把他們作爲無論你加載所有的數據到一個背景圖像使用加載圖標在過去,當數據被加載這樣,它涵蓋了起來。

0

只需出示您開始工作的jQuery之前加載圖像,並隱藏它,它已經完成了。

我不認爲有使用Ajax時一樣的事件。

+0

你也可以對jQuery插件blockUI它可以阻止你的用戶界面的全部或部分,並顯示加載圖像的樣子 – Fender 2011-02-04 09:33:15

1

JavaScript執行,頁面渲染,並在瀏覽器中畫管道是單線程的(除非你把HTML5 webworkers)。這意味着,如果您運行的CPU足夠密集的JavaScript,動畫GIF圖像將停止動畫。唯一的解決辦法是優化你的代碼,並且在某些情況下用setTimeouts打破執行調用堆棧。