2010-01-15 3 views
2

Parce que la page sur laquelle je travaille est une page intranet, mon appel AJAX est très rapide avec la réponse. Pour des raisons de convivialité, j'aimerais une pause de 1 à 2 secondes pour afficher une animation de chargement. Voici ce que j'ai essayé mais l'animation est à peine visible.Pause avant JQuery AJAX post

$(document).ready(function(){ 
    $('#wait').hide(); 
    $('#submitform').click(function(){ 
    $('#wait').show(); 
    $.ajax({ 
     type: "POST", 
     url: "abs_newabs_check.asp", 
     data: { StaffID: $("#suggest1").val() }, 
     success: callback 
    }); 

}); 
}); 

function callback(data, status) 
{ 
    $('#wait').hide(); 
    $("#ajaxdiv").html(data); 
} 
+1

"Je veux rendre mon application plus lente", quelle idée intéressante :-) – naivists

Répondre

3

Ajouter un appel setTimeout à la fonction de rappel:

function callback(data,status) { 
    setTimeout(function() { 
    $("#wait").hide(); 
    $("#ajaxdiv").html(data); 
    }, 1500); 
} 

nb. le paramètre de données seront transmises dans la fonction anonyme comme une fermeture, si je ne me trompe pas

1

Utilisez la fonction setTimeout

setTimeout("alert('5 seconds has passed.');",5000); 
5

je dois penser à penser à une autre façon d'ajouter la facilité d'utilisation, vous êtes maintenant ralentir votre service pour aider les utilisateurs. Qu'en est-il de l'utilisation du Yellow Fade Technique De cette façon, vous pouvez montrer quelque chose a changé sur la page et vous ne ralentissez pas votre système.

Voici une question connexe qui pourrait vous aider. Yellow fade Effect with JQuery

+0

Merci pour ça. J'ai implémenté cela avec mon animation de chargement. – tonyyeb