2010-03-24 4 views
28

Ich weiß, es gibt Tausende von Beispielen im Internet, aber ich möchte für das Skript, das ich bereits ein Laden Gif Bild anzeigen, während die Daten abgerufen werden. Meine Java-Kenntnisse sind arm, deshalb frage ich, wie die folgenden ändern:Anzeige laden Bild während Beitrag mit Ajax

<script type="text/javascript"> 
$(document).ready(function(){ 
    function getData(p){ 
    var page=p; 
    $.ajax({ 
     url: "loadData.php?id=<? echo $id; ?>", 
     type: "POST", 
     cache: false, 
     data: "&page="+ page, 
     success : function(html){ 
      $(".content").html(html); 
     } 
    }); 
} 
getData(1); 

$(".page").live("click", function(){ 
    var id = $(this).attr("class"); 
    getData(id.substr(8)); 
     }); 
     }); 
    </script> 

Und mein div ist hier:

<div class="content" id="data"></div> 

Dank. John

Antwort

61

Angenommen, Sie haben einen Tag irgendwo auf der Seite haben, die Ihre Lade Nachricht enthält:

<div id='loadingmessage' style='display:none'> 
    <img src='loadinggraphic.gif'/> 
</div> 

Sie können zwei Zeilen in die Ajax-Aufruf hinzu:

function getData(p){ 
    var page=p; 
    $('#loadingmessage').show(); // show the loading message. 
    $.ajax({ 
     url: "loadData.php?id=<? echo $id; ?>", 
     type: "POST", 
     cache: false, 
     data: "&page="+ page, 
     success : function(html){ 
      $(".content").html(html); 
      $('#loadingmessage').hide(); // hide the loading message 
     } 
    }); 
+5

Wenn die Ajax-Anforderung nicht erfolgreich ist, bleibt das Lade-GIF in diesem Fall sichtbar. – ragatskynet

+1

Anstatt das div/gif im Erfolgsrückruf zu verstecken, fügen Sie es unter der always() -Methode hinzu (Dies ist der alte callback-Handler). – Narayana

9

Werfen Sie einen Blick auf ajaxStart und ajaxStop

+0

Felipe zuletzt dank Ajax-Aufruf zu ändern. Allerdings habe ich vergessen zu erwähnen, dass meine js Kenntnisse sind arm? Ich habe diese Seiten gesehen, weiß aber nicht, wie ich mein Skript ändern kann. –

9
$.ajax(
{ 
    type: 'post', 
    url: 'mail.php', 
    data: form.serialize(), 
    beforeSend: function() 
    { 
     $('.content').html('loading...'); 
    }, 
    success: function(data) 
    { 
     $('.content').html(data); 
    }, 
    error: function() 
    { 
     $('.content').html('error'); 
    } 
}); 

Viel Spaß beim Spielen!

Wenn Sie schnelle Ladezeiten haben sollten, die verhindern, dass das Laden angezeigt wird, können Sie eine Art von Timeout hinzufügen.

2

Dies ist sehr einfach und leicht zu verwalten.

jQuery(document).ready(function(){ 
jQuery("#search").click(function(){ 
    jQuery("#loader").show("slow"); 
    jQuery("#response_result").hide("slow"); 
    jQuery.post(siteurl+"/ajax.php?q="passyourdata, function(response){ 
     setTimeout("finishAjax('response_result', '"+escape(response)+"')", 850); 
      }); 
}); 

}) 
function finishAjax(id,response){ 
     jQuery("#loader").hide("slow"); 
     jQuery('#response_result').html(unescape(response)); 
     jQuery("#"+id).show("slow");  
     return true; 
} 
1
<div id="load" style="display:none"><img src="ajax-loader.gif"/></div> 

function getData(p){ 
     var page=p; 
     document.getElementById("load").style.display = "block"; // show the loading message. 
     $.ajax({ 
      url: "loadData.php?id=<? echo $id; ?>", 
      type: "POST", 
      cache: false, 
      data: "&page="+ page, 
      success : function(html){ 
       $(".content").html(html); 
     document.getElementById("load").style.display = "none"; 
      } 
     }); 
0

//$(document).ready(function(){ 
 
// \t $("a").click(function(event){ 
 
// \t \t event.preventDefault(); 
 
// \t \t $("div").html("This is prevent link..."); 
 
// \t }); 
 
//}); \t \t \t 
 

 
$(document).ready(function(){ 
 
\t $("a").click(function(event){ 
 
\t \t event.preventDefault(); 
 
\t \t $.ajax({ 
 
\t \t \t beforeSend: function(){ 
 
\t \t \t \t $('#text').html("<img src='ajax-loader.gif' /> Loading..."); 
 
\t \t \t }, 
 
\t \t \t success : function(){ 
 
\t \t \t \t setInterval(function(){ $('#text').load("cd_catalog.txt"); },1000); 
 
\t \t \t } 
 
\t \t }); 
 
\t }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> 
 
\t \t 
 
<a href="http://www.wantyourhelp.com">[click to redirect][1]</a> 
 
<div id="text"></div>

-5

stellen Sie sicher,

für den Vorschlag
async: true, 
type: "GET", 
dataType: "html", 
+0

Warum? Wie beantwortet das die Frage? – Liam