JavaScript Ajouter un préchargeur AJAX


Exemple

Voici un moyen d’afficher un préchargeur GIF pendant l’exécution d’un appel AJAX. Nous devons préparer nos fonctions de préchargement add et remove:

function addPreloader() {
  // if the preloader doesn't already exist, add one to the page
  if(!document.querySelector('#preloader')) {
    var preloaderHTML = '<img id="preloader" src="https://goo.gl/cNhyvX" />';
    document.querySelector('body').innerHTML += preloaderHTML;
  }
}

function removePreloader() {
  // select the preloader element
  var preloader = document.querySelector('#preloader');
  // if it exists, remove it from the page
  if(preloader) {
    preloader.remove();
  }
}

Maintenant, nous allons voir où utiliser ces fonctions.

var request = new XMLHttpRequest();

Dans la fonction onreadystatechange , vous devez avoir une instruction if avec la condition suivante: request.readyState == 4 && request.status == 200 .

Si true : la requête est terminée et la réponse est prête, c'est là que nous utiliserons removePreloader() .

Sinon si false : la requête est toujours en cours, dans ce cas nous allons lancer la fonction addPreloader()

xmlhttp.onreadystatechange = function() {

  if(request.readyState == 4 && request.status == 200) {
    // the request has come to an end, remove the preloader
    removePreloader();
  } else {
    // the request isn't finished, add the preloader
    addPreloader()
  }

};

xmlhttp.open('GET', your_file.php, true);
xmlhttp.send();