Afin d'apprendre PHP je réinvente la roue et j'essaie de faire une
galerie en PHP, j'ai donc entre autre une page d'administration qui me
permet de renseigner une base de données, de créér des vignettes, de
créér un fichier zip des galeries, etc...
Si je demande par exemple la création de vignettes pour une ou
plusieurs galeries, une boucle est censée pour chaque fichier créér
une version plus petite de la photo, la stocker dans un répertoire
nommé vignettes puis m'afficher un message du type "Photo 1.jpg -
Insérée dans la base - Vignette construite - Ajoutée à l'archive zip"
Je m'attends donc qu'à chaque passage dans la boucle une nouvelle
ligne s'affiche, au lieu de ça, le début de ma page s'affiche, la
boucle fait son travail pour tout un lot de photos et me sort en une
seule fois les X lignes de résultat.
Pourquoi la page n'affiche-t-elle pas chaque message au fur et à
mesure que les photos sont traitées ?
Peut-on y remédier ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Olivier Miakinen
Si je demande par exemple la création de vignettes pour une ou plusieurs galeries, une boucle est censée pour chaque fichier créér une version plus petite de la photo, la stocker dans un répertoire nommé vignettes puis m'afficher un message du type "Photo 1.jpg - Insérée dans la base - Vignette construite - Ajoutée à l'archive zip"
Ton script PHP est appelé directement sur le serveur, ou bien tu passes par un navigateur web et une requête HTTP ?
Je m'attends donc qu'à chaque passage dans la boucle une nouvelle ligne s'affiche, au lieu de ça, le début de ma page s'affiche, la boucle fait son travail pour tout un lot de photos et me sort en une seule fois les X lignes de résultat.
Pourquoi la page n'affiche-t-elle pas chaque message au fur et à mesure que les photos sont traitées ?
Si c'est à partir d'un navigateur web, ce comportement est normal. À la limite, tu pourrais même ne rien voir s'afficher du tout jusqu'à ce que tout soit fini et que l'ensemble s'affiche d'un seul coup. Ceci est dû à deux choses : d'une part au fait que le serveur peut décider de n'envoyer que des pages TCP de 4 ko par exemple ; d'autre part à celui que le navigateur peut décider d'optimiser l'affichage en temporisant celui-ci tant qu'il reste des données à recevoir.
Peut-on y remédier ?
Oui, tout simplement en lançant ton script en ligne de commande sur le serveur.
Si je demande par exemple la création de vignettes pour une ou
plusieurs galeries, une boucle est censée pour chaque fichier créér
une version plus petite de la photo, la stocker dans un répertoire
nommé vignettes puis m'afficher un message du type "Photo 1.jpg -
Insérée dans la base - Vignette construite - Ajoutée à l'archive zip"
Ton script PHP est appelé directement sur le serveur, ou bien tu passes
par un navigateur web et une requête HTTP ?
Je m'attends donc qu'à chaque passage dans la boucle une nouvelle
ligne s'affiche, au lieu de ça, le début de ma page s'affiche, la
boucle fait son travail pour tout un lot de photos et me sort en une
seule fois les X lignes de résultat.
Pourquoi la page n'affiche-t-elle pas chaque message au fur et à
mesure que les photos sont traitées ?
Si c'est à partir d'un navigateur web, ce comportement est normal. À la
limite, tu pourrais même ne rien voir s'afficher du tout jusqu'à ce que
tout soit fini et que l'ensemble s'affiche d'un seul coup. Ceci est dû
à deux choses : d'une part au fait que le serveur peut décider de
n'envoyer que des pages TCP de 4 ko par exemple ; d'autre part à celui
que le navigateur peut décider d'optimiser l'affichage en temporisant
celui-ci tant qu'il reste des données à recevoir.
Peut-on y remédier ?
Oui, tout simplement en lançant ton script en ligne de commande sur le
serveur.
Si je demande par exemple la création de vignettes pour une ou plusieurs galeries, une boucle est censée pour chaque fichier créér une version plus petite de la photo, la stocker dans un répertoire nommé vignettes puis m'afficher un message du type "Photo 1.jpg - Insérée dans la base - Vignette construite - Ajoutée à l'archive zip"
Ton script PHP est appelé directement sur le serveur, ou bien tu passes par un navigateur web et une requête HTTP ?
Je m'attends donc qu'à chaque passage dans la boucle une nouvelle ligne s'affiche, au lieu de ça, le début de ma page s'affiche, la boucle fait son travail pour tout un lot de photos et me sort en une seule fois les X lignes de résultat.
Pourquoi la page n'affiche-t-elle pas chaque message au fur et à mesure que les photos sont traitées ?
Si c'est à partir d'un navigateur web, ce comportement est normal. À la limite, tu pourrais même ne rien voir s'afficher du tout jusqu'à ce que tout soit fini et que l'ensemble s'affiche d'un seul coup. Ceci est dû à deux choses : d'une part au fait que le serveur peut décider de n'envoyer que des pages TCP de 4 ko par exemple ; d'autre part à celui que le navigateur peut décider d'optimiser l'affichage en temporisant celui-ci tant qu'il reste des données à recevoir.
Peut-on y remédier ?
Oui, tout simplement en lançant ton script en ligne de commande sur le serveur.
Francois Girault
[itérations longues sur le serveur]
Ton script PHP est appelé directement sur le serveur, ou bien tu passes par un navigateur web et une requête HTTP ?
Telle est la question ...
Peut-on y remédier ?
Oui, tout simplement en lançant ton script en ligne de commande sur le serveur.
Ou moins efficace, mais nécessaire en l'absence de shell sur le serveur : travailler coté client et se débrouiller pour obtenir une boucle de requêtes http.
Sans javascript, je ne vois qu'une solution par header("location: urlvignettesuivante ") à chaque fin d'itération. Mais de nos jours, avec XmlHttpRequest, on peut répondre à la demande de l'op sans soucis, mais c'est vers f.c.l.javascript qu'il faut se tourner.
-- FG
[itérations longues sur le serveur]
Ton script PHP est appelé directement sur le serveur, ou bien tu passes
par un navigateur web et une requête HTTP ?
Telle est la question ...
Peut-on y remédier ?
Oui, tout simplement en lançant ton script en ligne de commande sur le
serveur.
Ou moins efficace, mais nécessaire en l'absence de shell sur le serveur
: travailler coté client et se débrouiller pour obtenir une boucle de
requêtes http.
Sans javascript, je ne vois qu'une solution par header("location:
urlvignettesuivante ") à chaque fin d'itération. Mais de nos jours, avec
XmlHttpRequest, on peut répondre à la demande de l'op sans soucis, mais
c'est vers f.c.l.javascript qu'il faut se tourner.
Ton script PHP est appelé directement sur le serveur, ou bien tu passes par un navigateur web et une requête HTTP ?
Telle est la question ...
Peut-on y remédier ?
Oui, tout simplement en lançant ton script en ligne de commande sur le serveur.
Ou moins efficace, mais nécessaire en l'absence de shell sur le serveur : travailler coté client et se débrouiller pour obtenir une boucle de requêtes http.
Sans javascript, je ne vois qu'une solution par header("location: urlvignettesuivante ") à chaque fin d'itération. Mais de nos jours, avec XmlHttpRequest, on peut répondre à la demande de l'op sans soucis, mais c'est vers f.c.l.javascript qu'il faut se tourner.
-- FG
Thierry B.
--{ Axelar a plopé ceci: }--
Pourquoi la page n'affiche-t-elle pas chaque message au fur et à mesure que les photos sont traitées ? Peut-on y remédier ?
http://php.net/manual/en/function.flush.php
Aie... ça n'a pas l'air gagné...
-- Un économiste, c'est un expert qui saura demain pourquoi ce qu'il a prédit hier ne s'est pas produit aujourdhui.
--{ Axelar a plopé ceci: }--
Pourquoi la page n'affiche-t-elle pas chaque message au fur et à
mesure que les photos sont traitées ?
Peut-on y remédier ?
http://php.net/manual/en/function.flush.php
Aie... ça n'a pas l'air gagné...
--
Un économiste, c'est un expert qui saura demain pourquoi ce qu'il
a prédit hier ne s'est pas produit aujourdhui.