Progressbar xhr

Messages postés
105
Date d'inscription
mardi 13 janvier 2004
Statut
Membre
Dernière intervention
18 mai 2019
- - Dernière réponse : xzonz
Messages postés
105
Date d'inscription
mardi 13 janvier 2004
Statut
Membre
Dernière intervention
18 mai 2019
- 18 mai 2019 à 00:28
Bonjour a toutes et tous
ma question concerne une progressbar xmlhttprequest.

je m'explique:

dans une première page php, j'ai un script qui affiche les images d'un répertoire sous forme de galerie ... un grand classique. quand on arrive sur cette page : si , pas de miniature présentent dans le répertoire j'affiche un lien qui propose de créer les miniatures.

Ce lien dirige vers une autre page php qui crée les miniature (en utilisant la librairie gd).
quand toutes les miniatures sont crées on reviens sur la page précédente qui cette fois affiche
la galerie.

mon problème est le suivant:
une fois qu'on a cliqué sur le lien pour créer les miniatures ... on attend que le script de la deuxième page
s’exécute (normal me direz vous) sans avoir aucun état d'avancement de son exécution.

comment est il possible d'afficher la progression (pourcentage ou progressbar) du script appelé depuis
la deuxième page, sur la première page ?

j'ai compris que cela est possible avec xhr ... mais comment ?
j'ai fait quelques recherches mais a vrai dire je ne vois pas trop comment ça fonctionne et surtout
il me manque un exemple simple et clair pour pouvoir adapter et avancer un peu.

merci d'avance pour votre aide

F


--
Afficher la suite 

1 réponse

Messages postés
132
Date d'inscription
mardi 24 décembre 2002
Statut
Membre
Dernière intervention
12 novembre 2019
0
Merci
Salut xzonz
voici un exemple
alert('Beau temps belle mer');
Jorgio

Page 1 :
<div id="resultat"></div>
<div onclick="_miniature()">Creer</div>
<script>
  function _miniature() {
    if (window.XMLHttpRequest){xmlhttp = new XMLHttpRequest();} else {xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");}
    xmlhttp.onreadystatechange = function (){
    if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {document.getElementById("resultat").innerHTML = xmlhttp.responseText;}
    }
    xmlhttp.open("GET", 'creer_miniature', true);
    xmlhttp.send();
  }
</script>


Page 2 :
<?php
$i = 1;
$nombre = 100;
?>
<style>
.pos{float:left;width:calc((100% / <?php echo $nombre?>) - 2px);border:1px solid #000;background:red;height:20px}
</style>
<?php
while ($i <= $nombre)
{
echo '<div class=pos></div>';
$i++;
}
?>



--
xzonz
Messages postés
105
Date d'inscription
mardi 13 janvier 2004
Statut
Membre
Dernière intervention
18 mai 2019
-
Salut Jorgio
C'est pile poil ce qu'il me fallait ... le top !
un grand merci a toi ! :-)
Commenter la réponse de cs_eli42