[PHP] probleme avec la fonction SLEEP()

m_jaz3 -  
 rafou -
Bonjour,
j'essai tout betement de faire une page qui m'afficherait un texte et au bout de quelques secondes un autre
voici le code que j'ai fait

Code :
<?php
echo '<html>
<body>
<p align="center"> </p>
<p align="center"> </p>
<p align="center"> </p>
<p align="center"> </p>
<p align="center"><b><font face="Verdana" color="#008000">CLIENT SUPPRIMÈ AVEC 
SUCCÈS</font></b></p>
</body>
</html>';
sleep(2);
echo 'test';
?>

Le probleme est qu'au lieu que le premier texte s'affiche puis le second apres 2 secondes , et bien le delai d'attente (2 secondes ) s'efectue pendant le chargement de la page.Et quand la page est completement chargée je trouve les 2 textes deja ecrits.
bizarre non.
Quelqu'un aurait il une idee??
merci
Configuration: Windows XP
Internet Explorer 6.0

6 réponses

  1. rafou
     
    tout bête:
    Le PHP s'exécute coté server, donc quand la page ce charge ton script est lue et exécuter par le server, PUIS elle apparait. Donc ton serveur a bien attendu avant d'exécuter la suite, mais apres avoir attendu il a exécuter le reste et t'as afficher le résultat.... si tu veux faire attendre le client et non pas le serveur utilise le java script...
    Bonne journée
    3
  2. m_jaz3
     
    BON!!!
    j'ai réglé le probleme avec du JAVASCRIPT

    [code]
    <Script language="JavaScript">
    setTimeout("document.location = 'ma_page.php' ", 2000)
    </script>
    [/code]
    Si ca interesse qqun
    je sais meme pas si je dois mettre le post comme résolu.
    Avis au moderateur.
    2
  3. m_jaz3
     
    ben ecoute il se passe rien.
    De toute maniere, le probleme n'est pas la .
    Pourquoi devrais je contourner un fonction aussi simple que sleep().
    Pourquoi cette fonction agit avant l'pparition du premier texte .c'est a dire pendant le chargement de la page??
    merci
    0
  4. m_jaz3
     
    salut
    j'ai testé ton code et regarde la reponse que je reçois:
    0 sec
    c'est comme si il y avait pas eu de delai
    ca me rend dingue
    -1
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. eolange Messages postés 109 Statut Membre 2
     
    essai ca pour voir :)

    1. <?php
    2. function getmicrotime(){
    3. list($usec, $sec) = explode(" ",microtime());
    4. return ((float)$usec + (float)$sec);
    5. }
    6. $time_start = getmicrotime();
    7. for ($i=0; $i < 1000; $i++){
    8. //ne rien faire, pendant un millier de fois...
    9. }
    10. $time_end = getmicrotime();
    11. $time = round($time_end - $time_start, 3);
    12. echo "<font face='Verdana, Arial, Helvetica, sans-serif' size='1' color='#FFFFFF'> Page générée en $time secondes</font>";
    13. ?>

    ( https://forum.hardware.fr/hfr/Programmation/php-getmicrotime-sujet_15228_1.htm )
    -1
  7. eolange Messages postés 109 Statut Membre 2
     
    pourquoi tu lance pas une fonction qui calcul le tps d'affichage puis une fois calculé tu lance le sleep ?

    function getmicrotime(){
    list($usec, $sec) = explode(" ",microtime());
    return ((float)$usec + (float)$sec);
    }
    $debut = getmicrotime();

    la s'affiche la page..

    $fin = getmicrotime();
    echo round($fin-$debut, 3)."sec";

    if ($fin!=null)
    {
    sleep(2);
    }

    ou bien en javascript :)
    -3