2013-08-30 43 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(); 
}