Progressbar xhr

xzonz Messages postés 103 Date d'inscription mardi 13 janvier 2004 Statut Membre Dernière intervention 23 novembre 2022 - 10 mai 2019 à 23:56
xzonz Messages postés 103 Date d'inscription mardi 13 janvier 2004 Statut Membre Dernière intervention 23 novembre 2022 - 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


--

1 réponse

cs_eli42 Messages postés 143 Date d'inscription mardi 24 décembre 2002 Statut Membre Dernière intervention 11 juillet 2023 1
17 mai 2019 à 17:02
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++;
}
?>



--
0
xzonz Messages postés 103 Date d'inscription mardi 13 janvier 2004 Statut Membre Dernière intervention 23 novembre 2022
18 mai 2019 à 00:28
Salut Jorgio
C'est pile poil ce qu'il me fallait ... le top !
un grand merci a toi ! :-)
0
Rejoignez-nous