2013-08-30 44 views
-1

有沒有辦法顯示加載微調,而我的JavaScript正在運行?jquery加載微調或JS加載消息運行

我想toshow的東西給用戶,而網頁等待.....

這需要大約5-6 secs..so我想說明一個微調或箱子,同時它的等待

$.each(ARRAY, function(key, item){ 
          //IM DOING SOME LOGIC HERE 
         }); 
+1

見,如果這個問題可以幫助:http://stackoverflow.com/questions/68485/how-to-show-loading-spinner-in-jquery – raddevon

+1

完全取決於你在等什麼..看起來你正在運行一些腳本..這將凍結你的瀏覽器,直到完成腳本。 –

回答

1

在你的頁面添加一個隱藏的加載圖像,當你啓動你的函數時顯示它,並在函數完成時再次隱藏它。

<img src="loading image " id="loading"> 


function(){ 
    $("#loading").show(); 
    your logic 
    $("#loading").hide(); 
} 
0

這只是想到的第一件事。可能不是最好的解決方案。但它的工作..你可以定義一個加載div並隱藏它默認情況下。然後,當每個人都在做它的事情時,顯示加載div。因此,像:

CSS:

.hidden{display:none;} 

HTML:

 <div class="loading hidden"></div> 

的JavaScript:

  function(){ 
       $('.loading').removeClass('hidden'); 
       $.each(ARRAY, function(key, item){ 

        }); 
      } 
0

這可能是AJAX邏輯有所幫助:

<img id="loadingImg" src="loding.gif"/> 

$('#loadingImg') 
    .hide() // hide it initially 
    .ajaxStart(function() { 
     $(this).show(); 
    }) 
    .ajaxStop(function() { 
     $(this).hide(); 
    }) 
; 

每當您執行任何AJAX調用並顯示加載微調器時,ajaxStart/ajaxStop函數都會觸發。

或者,這可能也有幫助:

function doLogic() { 
    $('#loadingImg').show(); 

    setTimeout(function() { // allow spinner to load before work starts 
     // logic here 
    },500); 

    $('#loadingImg').hide(); 
}