Affichage temporisé

[Résolu]
Signaler
Messages postés
2089
Date d'inscription
jeudi 16 septembre 2004
Statut
Membre
Dernière intervention
27 juin 2021
-
Messages postés
2089
Date d'inscription
jeudi 16 septembre 2004
Statut
Membre
Dernière intervention
27 juin 2021
-
Je sais que la fonction flush() est sensée envoyer le buffer de sortie au navigateur, mais je n'arrive pas à l'utiliser.
Je voudrais afficher un morceau de la page, faire une pause de quelques secondes puis afficher le reste, je fais donc :

<html>

<?php
   echo 'Veuillez patienter...

';
    flush();
    pause (3);
    echo 'Terminé.

'
?>

</html>

Mais le navigateur affiche tout d'un coup, apres avoir mouliné pendant les 3 secondes demandées.

J'ai aussi essayé ob_start, etc... Sans plus de succés.

Merci pour votre aide.

Flachy Joe
A voir également:

14 réponses

Messages postés
591
Date d'inscription
mercredi 20 juillet 2005
Statut
Membre
Dernière intervention
16 juillet 2009
2
Saell og blesuð

Heu ca serait pas plutot sleep() que pause() des fois ?
http://fr.php.net/manual/fr/function.sleep.php

Vilhjálms  Sigurðsdóttir aka Frëyjá
Messages postés
503
Date d'inscription
mercredi 29 décembre 2004
Statut
Membre
Dernière intervention
20 mars 2012

exemple :

<?php

// current time
echo date('h:i:s') . "\n";

// sleep for 10 seconds
sleep(10);

// wake up !
echo date('h:i:s') . "\n";

?>

This example will output (after 10 seconds)

05:31:23
05:31:33

N'importe où. 
mais là où il le faut.
Messages postés
591
Date d'inscription
mercredi 20 juillet 2005
Statut
Membre
Dernière intervention
16 juillet 2009
2
Saell og blesuð

younes371 >>Afin de maintenir le propos de kankrelune cf http://www.phpcs.com/code.aspx?ID=40805 Merci d'avoir copier coller l exemple du l'url sur la fonction sleep() que j'avais cite (mais en vs uk)

Vilhjálms  Sigurðsdóttir aka Frëyjá
Messages postés
2089
Date d'inscription
jeudi 16 septembre 2004
Statut
Membre
Dernière intervention
27 juin 2021
1
Voui, c'est sleep si tu veut, c'est juste pour l'exemple. Mais ça marche pas comme je voudrai, de toute façon :

This example will output (after 10 seconds)

Alors que je voudrai qu'il affiche
05:31:23

Qu'il fasse une pause de 10 secondes puis qu'il affiche

05:31:33

Flachy Joe
Messages postés
2350
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
18 avril 2015
3
Comportement coté client....
PHP n'est pas exécuté coté client.
Utilise JavaScript pour ca. (tu mets ton texte dans un div que tu mets en .visibility hidden, et après tes 10 sec tu mets .visibility normal)
Messages postés
503
Date d'inscription
mercredi 29 décembre 2004
Statut
Membre
Dernière intervention
20 mars 2012

tu peux faire ça aussi :
<?php

header ("Refresh: 5;URL=page_suivante.php");

// Redirection vers page_suivante.php après un délai de 5 secondes

// durant lesquelles la page actuelle (page_premiere.php, par exemple) est affichée

?>

N'importe où. 
mais là où il le faut.
Messages postés
2089
Date d'inscription
jeudi 16 septembre 2004
Statut
Membre
Dernière intervention
27 juin 2021
1
Merci les gars, le truc c'est que la pausen'est qu'un exemple !
Il faudrait que l'affichage de la deuxieme partie de ma page ne se fasse qu'une fois une certaine fonction terminée, mais que la premiere partie soit affichée avant le lancement de cette même fonction...

Flachy Joe
Messages postés
2089
Date d'inscription
jeudi 16 septembre 2004
Statut
Membre
Dernière intervention
27 juin 2021
1
Et pas moyen d'utiliser java puisqu'on ne siat pas ce qu'il faut afficher avant la fin de l'execution de la fonction...

Flachy Joe
Messages postés
503
Date d'inscription
mercredi 29 décembre 2004
Statut
Membre
Dernière intervention
20 mars 2012

http://www.sean.co.uk/a/webdesign/javascriptdelay.shtm




N'importe où. 
mais là où il le faut.
Messages postés
2089
Date d'inscription
jeudi 16 septembre 2004
Statut
Membre
Dernière intervention
27 juin 2021
1
C'est quand même couillon : la navigateur reçoi des infos dés le "flush", mais il est pas foutu de les afficher tant que le traitement de la page n'est pas fini.

Bon, je ferai donc 2 pages : la premiere contiendra le debut du texte et la place pour afficher les informations qui seront récupérées par Ajax d'une deuxieme page php.

Merci quand même, bien que je ne comprenne toujours pas pourquoi les navigateur ne sont pas conçu pour afficher des morceaux de la page en cours de traitement... Surtout que ça marche avec les images par exemple : le navigateur affiche bien la page avant que toutes les images soient chargées.

Flachy Joe
Messages postés
2089
Date d'inscription
jeudi 16 septembre 2004
Statut
Membre
Dernière intervention
27 juin 2021
1
[auteurdetail.aspx?ID=413117 younes371]
: La pause n'était qu'un exemple : qu'elle soit en javascript ne change rien...

Flachy Joe
Messages postés
2350
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
18 avril 2015
3
Messages postés
2089
Date d'inscription
jeudi 16 septembre 2004
Statut
Membre
Dernière intervention
27 juin 2021
1
Merci FhX, c'est un peu le bordel dans les commentaires de cette doc, mais je vais voir ce que je peut en faire. Si j'arrive à quelque chose je vous en informerai (d'ici quelques jours parce que je n'ai pas de serveur sous la main en ce moment...)

A+
Flachy Joe
Messages postés
2350
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
18 avril 2015
3
TU NE PEUX PAS LE FAIRE EN PHP !!!

Rahhh faut l'expliquer comment !!!

PHP va t'exécuter ton bloc d'UN SEUL TRAIT !
Il te faut JavaScript pour une exécution asynchrone.

Bref ==> Ajax ici.