显示“加载”消息的方法

时间:2008-11-29 16:36:45

标签: jquery ajax json

我正在使用jquery和getJSON方法,我想知道是否有办法在加载我的内容之前显示一条消息说加载。我知道jquery ajax调用之前有提交回调,你可以有一些东西,但getJSON只有三个选项。

有什么想法吗?

4 个答案:

答案 0 :(得分:9)

将此内容添加到您的页面:

<div id="loading" style="display:none">
    <img src="/images/ajax-loader.gif" alt="Loader" />&nbsp;Loading...
</div>
<script type="text/javascript">
    $().ready(function() {
        $("#loading").bind("ajaxSend", function() {
            $(this).show();
        }).bind("ajaxComplete", function() {
            $(this).hide();
        });
    });
</script>

您可以根据需要设置loader-div的样式,例如Google Mail-like loader:

#loading
 {
   position:fixed; 
   _position:absolute;
   top: 0;
   left:47%; 
   padding:2px 5px;
   z-index: 5000;
   background-color:#CF4342;
   color:#fff;
 }

答案 1 :(得分:7)

在您可以触发的“和”成功“事件之前有自定义.ajax”。

但是,通常情况下,你会做一些像

这样的事情

  showLoadingAnimation(); 
  $.getJSON(  ..... function(){
      dontShowLoadingAnimation(); 
  }); 

或类似的东西。

然而,你的问题有点像vauge,很难确定你想要做什么,而你只是用javascript就无法做到。

答案 2 :(得分:5)

您可以在jQuery对象上使用ajaxSendajaxStop来附加相应的事件处理程序,如this tutorial中所示。无论请求类型(所有jQuery AJAX和JSON方法)如何,这都将显示进度指示器,并在发生错误时隐藏加载图形。

答案 3 :(得分:0)

肯特,

这样的东西可以工作,只显示一个简单的div元素,显示文本Loading ...然后显示我的JSON结果。

赖安