0

我需要在整个页面加载时显示一个 ajax 加载图像。

这是html:

<div id="loading">
  <img  src="images/ajax_loader.gif" >
</div>

这是脚本:

<script type="text/javascript">
  $(window).load(function() {
    $('#loading').hide();
  });
</script>

出于某种原因,当我加载页面时,我看不到动画。我确实看到了图像,任何想法这里可能有什么问题?

4

2 回答 2

1

您通常会看到图像,但如果整个页面“冻结”,则看不到图像。

这通常发生在您在实际加载中进行 javascript 处理时,该处理会暂停浏览器渲染直到完成。

您可以通过使用HTML5 web workers来避免这种情况,它提供非阻塞处理,并且实际上具有多线程功能。

来自维基百科页面:..is a JavaScript script executed from an HTML page that runs in the background, independently of other user-interface scripts that may also have been executed from the same HTML page

我不知道这是否真的是你的问题,除非你给我们看一把小提琴

于 2013-07-12T19:00:01.063 回答
0
<div id="LoadingImage" style="display: none">
 <img src.... />
</div>

 function ajaxCall()
 {
    $("#LoadingImage").show();

      $.ajax({ 
      type: "GET", 
      url: surl, 
      dataType: "jsonp", 
      cache : false, 
      jsonp : "onJSONPLoad", 
      jsonpCallback: "newarticlescallback", 
      crossDomain: "true", 
      success: function(response) { 
        $.("#LoadingImage").hide();
        alert("Success"); 
      }, 
      error: function (xhr, status) {  
        $.("#LoadingImage").hide();
        alert('Unknown error ' + status); 
      }    
   });  
 } 

此处参考 1。

请注意,您必须包括 JQuery。

另一个好方法:

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

参考2在这里。

于 2013-07-12T18:52:02.913 回答