Affichage temporisé [Résolu]

Messages postés
2116
Date d'inscription
jeudi 16 septembre 2004
Dernière intervention
23 septembre 2018
- 23 déc. 2006 à 16:11 - Dernière réponse :
Messages postés
2116
Date d'inscription
jeudi 16 septembre 2004
Dernière intervention
23 septembre 2018
- 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 

Votre réponse

14 réponses

Messages postés
591
Date d'inscription
mercredi 20 juillet 2005
Dernière intervention
16 juillet 2009
- 23 déc. 2006 à 16:48
0
Merci
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
Messages postés
505
Date d'inscription
mercredi 29 décembre 2004
Dernière intervention
20 mars 2012
- 23 déc. 2006 à 19:13
0
Merci
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
Messages postés
591
Date d'inscription
mercredi 20 juillet 2005
Dernière intervention
16 juillet 2009
- 23 déc. 2006 à 21:50
0
Merci
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
Messages postés
2116
Date d'inscription
jeudi 16 septembre 2004
Dernière intervention
23 septembre 2018
- 24 déc. 2006 à 14:46
0
Merci
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
Messages postés
2368
Date d'inscription
mercredi 13 octobre 2004
Dernière intervention
18 avril 2015
- 24 déc. 2006 à 19:47
0
Merci
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
Messages postés
505
Date d'inscription
mercredi 29 décembre 2004
Dernière intervention
20 mars 2012
- 24 déc. 2006 à 20:43
0
Merci
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
Messages postés
2116
Date d'inscription
jeudi 16 septembre 2004
Dernière intervention
23 septembre 2018
- 25 déc. 2006 à 12:22
0
Merci
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
Messages postés
2116
Date d'inscription
jeudi 16 septembre 2004
Dernière intervention
23 septembre 2018
- 25 déc. 2006 à 12:29
0
Merci
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
Messages postés
505
Date d'inscription
mercredi 29 décembre 2004
Dernière intervention
20 mars 2012
- 25 déc. 2006 à 17:39
0
Merci
http://www.sean.co.uk/a/webdesign/javascriptdelay.shtm




N'importe où. 
mais là où il le faut.
Commenter la réponse de younes371
Messages postés
2116
Date d'inscription
jeudi 16 septembre 2004
Dernière intervention
23 septembre 2018
- 26 déc. 2006 à 10:36
0
Merci
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
Messages postés
2116
Date d'inscription
jeudi 16 septembre 2004
Dernière intervention
23 septembre 2018
- 26 déc. 2006 à 10:40
0
Merci
[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
Messages postés
2368
Date d'inscription
mercredi 13 octobre 2004
Dernière intervention
18 avril 2015
- 26 déc. 2006 à 11:00
Commenter la réponse de FhX
Messages postés
2116
Date d'inscription
jeudi 16 septembre 2004
Dernière intervention
23 septembre 2018
- 26 déc. 2006 à 12:43
0
Merci
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
Messages postés
2368
Date d'inscription
mercredi 13 octobre 2004
Dernière intervention
18 avril 2015
- 25 déc. 2006 à 16:36
-2
Merci
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.