Agitez votre trafic avec Oseox, Plus de 400 cours gratuits.
Profitez de nos meilleurs conseils, Recevez notre newsletter pro !
Réécrivons le script de mise en place d'un loader AJAX, avec jQuery cette fois.
La méthode $.get() de jQuery prend en paramètre l'URL de requête et renvoie un objet jXHR sur lequel on vient ajouter les actions à effectuer selon le résultat (requête terminée, requête terminée avec succès, erreur).
Ici, nous commençons par afficher le loader, puis nous exécutons la requête. Sur cette requête, nous définissons les actions :
Fichier PHP
/*** Fichier PHP (script.php)
*
* Nous utilisons la fonction sleep() de PHP, permettant
* ici de simuler une latence de 2 secondes du serveur,
* afin de bien visualiser l'effet du "loader",
* puis nous affichons un résultat.
*/
<?php
sleep(2); // Attendre 2 secondes
echo 'Hello World!';
?>
Fichier HTML
/*** HTML ***/
<div id="ajaxBox"></div>
Fichier JAVASCRIPT
/*** Javascript ***/
// Au chargement de la page
$(window).load(function()
{
// Affichage du loader
ajaxBox_loader(true);
// Execution de la requête
$.get('http://site.com/script.php')
.complete(function()
{
// Suppression du loader
ajaxBox_loader(false);
})
.success(function(pXhr)
{
// Affichage de la réponse
ajaxBox_setText(pXhr.responseText);
})
.error(function()
{
// Affichage d'un message d'erreur
ajaxBox_setText('Error...');
});
});
// Fonction d'ajout ou de suppression du "loader"
function ajaxBox_loader(pState)
{
// Ajout d'un élement <img> d'id #ajaxBox_loader
if (pState === true)
$('#ajaxBox').append('<img id="ajaxBox_loader" src="loader.gif" />');
// Suppression de l'élement d'id #ajaxBox_loader
else
$('#ajaxBox_loader').remove();
}
// Fonction de mise à jour du contenu de la div #ajaxBox
// Ajout d'un element <p> contenant le message, dans le div #ajaxBox
function ajaxBox_setText(pText)
{
$('#ajaxBox').append('<p>'+ pText +'</p>');
}
Une question ? Venez la poser sur notre forum développement web !