- JavaScript>XMLHttpRequest -
- Publié le : | Modifié le :
chargement de page avec XMLHttpRequest
Comment charger un parti de votre document HTML avec les XMLHttpRequest
en JavaScript.
Le code utilisé.
Cette requête s'effectue en trois temps. D'abord un Listener, puis une fonction qui parse l'url du lien, et la requête XMLHttpRequest
proprement dite. Le code est largement commenté.
- // LISTENER SUR LE LIEN QUI SERA CLIQUÉ
- BOUTON.addEventListener('click',function(e){
- hrefSearch=parseQuery(this.getAttribute("href"));
- histPush=this.getAttribute("href");// Mise en cache du href du lien.
- loadHTMLDoc(hrefSearch);// La fonction Ajax pour charger le document.
- e.preventDefault();// Empêcher la page de se recharger.
- },false);
- // RETOURNE LA PAGE DU LIEN
- functionparseQuery(qstr){
- vara=qstr.split('?id=');// Chercher la page dans le href du Listener.
- returna[1];// Retourne la page.
- }
- // CHARGEMENT DE DOCUMENT EN AJAX (XMLHttpRequest en JavaScript)
- functionloadHTMLDoc(urlD){
- varurl="dossier"+urlD+".html";// La page recherchée.
- frame=document.getElementById('site-content');// l'élément cible.
- varrequest;
- request=newXMLHttpRequest();
- request.open('GET',url,true);
- request.setRequestHeader("Content-Type","text/html;charset=UTF-8");// Pour l'accentuation.
- //request.setRequestHeader('Cache-Control', 'no-cache'); Gestion de la mise en cache.
- request.onload=function(){
- if(request.status>=200&&request.status<400){// Succès!
- // Changer l'url dans l'historique du navigateur. Au cas où il y ait un refresh(F5)
- if(history.pushState){history.pushState(null,null,histPush);}
- frame.innerHTML=request.responseText;// Insertion du document vers l'élément cible.
- document.title= tab[urlD];// Changer le titre du document.
- window.scrollTo(0,0);// retour haut de page.
- }else{
- // Érreur
- window.location="./erreur.html";
- }
- };
- request.onerror=function(){
- // Si il y a une erreur de connection.
- window.location="./erreur.html";
- };
- request.send();// Envoyer la requête.
- }