Question

Une chose que j'ai remarquée avec php, c'est que rien n'est affiché à l'écran tant que le script n'a pas cessé de fonctionner. Pour le projet sur lequel je travaille, je nourris une liste de plus de 100 éléments, qui effectue une requête HTTP pour chaque élément et, une fois terminé, affiche une page avec le statut de chaque élément, son succès, etc.

.

Ce que je veux savoir, c'est s'il existe un moyen de générer les résultats de chaque boucle "foreach" au fur et à mesure qu'ils se produisent. Ainsi, l'utilisateur qui regarde l'écran voit la magie se dérouler ligne par ligne ou après 5 lignes.

Je n’ai jamais vu cela se faire avec des requêtes de type Ajax, c’est ce que je devrais chercher à faire à la place peut-être? Quelqu'un peut-il m'indiquer une fonction php qui le fait ou n'est-ce pas possible?

Était-ce utile?

La solution

Il peut être préférable de stocker toutes les sorties de script dans un tampon, puis de vider le tampon si nécessaire.

Par exemple:

<?php

if (ob_get_level() == 0) ob_start();

$test = Array('one','two','three','four');
foreach ($test as $key=>$val)
{
    echo $test;
    ob_flush();
    flush();
}

ob_end_flush();

?>

Assurez-vous que mod_gzip est désactivé!

Autres conseils

Utilisez la flush () commande

j'utilise

flush(); @ob_flush();

après la sortie.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top