Affichage temporisé [Résolu]

Flachy Joe 2115 Messages postés jeudi 16 septembre 2004Date d'inscription 23 novembre 2017 Dernière intervention - 23 déc. 2006 à 16:11 - Dernière réponse : Flachy Joe 2115 Messages postés jeudi 16 septembre 2004Date d'inscription 23 novembre 2017 Dernière intervention
- 26 déc. 2006 à 12:43
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
Afficher la suite 

14 réponses

Répondre au sujet
vilhjalms 591 Messages postés mercredi 20 juillet 2005Date d'inscription 16 juillet 2009 Dernière intervention - 23 déc. 2006 à 16:48
0
Utile
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á
Commenter la réponse de vilhjalms
younes371 505 Messages postés mercredi 29 décembre 2004Date d'inscription 20 mars 2012 Dernière intervention - 23 déc. 2006 à 19:13
0
Utile
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.
Commenter la réponse de younes371
vilhjalms 591 Messages postés mercredi 20 juillet 2005Date d'inscription 16 juillet 2009 Dernière intervention - 23 déc. 2006 à 21:50
0
Utile
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á
Commenter la réponse de vilhjalms
Flachy Joe 2115 Messages postés jeudi 16 septembre 2004Date d'inscription 23 novembre 2017 Dernière intervention - 24 déc. 2006 à 14:46
0
Utile
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
Commenter la réponse de Flachy Joe
FhX 2368 Messages postés mercredi 13 octobre 2004Date d'inscription 18 avril 2015 Dernière intervention - 24 déc. 2006 à 19:47
0
Utile
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)
Commenter la réponse de FhX
younes371 505 Messages postés mercredi 29 décembre 2004Date d'inscription 20 mars 2012 Dernière intervention - 24 déc. 2006 à 20:43
0
Utile
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.
Commenter la réponse de younes371
Flachy Joe 2115 Messages postés jeudi 16 septembre 2004Date d'inscription 23 novembre 2017 Dernière intervention - 25 déc. 2006 à 12:22
0
Utile
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
Commenter la réponse de Flachy Joe
Flachy Joe 2115 Messages postés jeudi 16 septembre 2004Date d'inscription 23 novembre 2017 Dernière intervention - 25 déc. 2006 à 12:29
0
Utile
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
Commenter la réponse de Flachy Joe
younes371 505 Messages postés mercredi 29 décembre 2004Date d'inscription 20 mars 2012 Dernière intervention - 25 déc. 2006 à 17:39
0
Utile
http://www.sean.co.uk/a/webdesign/javascriptdelay.shtm




N'importe où. 
mais là où il le faut.
Commenter la réponse de younes371
Flachy Joe 2115 Messages postés jeudi 16 septembre 2004Date d'inscription 23 novembre 2017 Dernière intervention - 26 déc. 2006 à 10:36
0
Utile
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
Commenter la réponse de Flachy Joe
Flachy Joe 2115 Messages postés jeudi 16 septembre 2004Date d'inscription 23 novembre 2017 Dernière intervention - 26 déc. 2006 à 10:40
0
Utile
[auteurdetail.aspx?ID=413117 younes371]
: La pause n'était qu'un exemple : qu'elle soit en javascript ne change rien...

Flachy Joe
Commenter la réponse de Flachy Joe
FhX 2368 Messages postés mercredi 13 octobre 2004Date d'inscription 18 avril 2015 Dernière intervention - 26 déc. 2006 à 11:00
Commenter la réponse de FhX
Flachy Joe 2115 Messages postés jeudi 16 septembre 2004Date d'inscription 23 novembre 2017 Dernière intervention - 26 déc. 2006 à 12:43
0
Utile
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
Commenter la réponse de Flachy Joe
FhX 2368 Messages postés mercredi 13 octobre 2004Date d'inscription 18 avril 2015 Dernière intervention - 25 déc. 2006 à 16:36
-2
Utile
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.
Commenter la réponse de FhX

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.