Comment ajouter une fonctionnalité Asynchrone à mon projet HTML-PHP pour contourner la Lenteur du traitement ?
Posté : 22 mai 2019, 12:11
Bonjour.
J'ai fortement besoin de votre aide.
En fait, mon Code PHP ci-dessous permet de générer des Numéros depuis les informations du formulaire HTML renseigné ET de les télécharger dans un fichier .csv via le Header du Navigateur Web.
Mais le problème est que la gestion des Numéros prend TROP DE TEMPS et donc très Lente. Pour contourner ce problème, je voudrais donc ajouter à ce Code un traitement Asynchrone (en utilisant la Librairie Ajax AXIOS) de sorte à ce que la gestion des Numéros soit RAPIDE.
Aidez moi svp à régler ce problème de Lenteur à y ajoutant à mon projet une fonctionnalité de traitement Asynchrone en utilisant la Librairie Ajax AXIOS.
Ou si vous avez une autre quelconque suggestion à me faire, ça me fera plaisir. L'essentiel pour moi est de résoudre ce problème de Lenteur.
Merci d'avance.
J'ai fortement besoin de votre aide.
En fait, mon Code PHP ci-dessous permet de générer des Numéros depuis les informations du formulaire HTML renseigné ET de les télécharger dans un fichier .csv via le Header du Navigateur Web.
Mais le problème est que la gestion des Numéros prend TROP DE TEMPS et donc très Lente. Pour contourner ce problème, je voudrais donc ajouter à ce Code un traitement Asynchrone (en utilisant la Librairie Ajax AXIOS) de sorte à ce que la gestion des Numéros soit RAPIDE.
Code : Tout sélectionner
$now = gmdate("D, d M Y H:i:s");
header("Expires: Tue, 03 Jul 2001 06:00:00 GMT");
header("Cache-Control: max-age=0, no-cache, must-revalidate, proxy-revalidate");
header("Last-Modified: {$now} GMT");
// force download
header("Content-Type: application/force-download");
header("Content-Type: application/octet-stream");
header("Content-Type: application/download");
$filename = "numero.csv";
// disposition / encoding on response body
header("Content-Disposition: attachment;filename={$filename}");
header("Content-Transfer-Encoding: binary");
ob_start();
$df = fopen("php://output", 'w');
// pour mettre un entête sur le CSV
$entetes = ['Numero'];
fputcsv($df, $entetes);
// numéro de base
$numero = (isset($_POST['numField'])) ? $_POST['numField'] : 0;
// longueur souhaité (doit être plus grande que longueur de $numéro)
$longueur_total = (isset($_POST['numLength'])) ? $_POST['numLength'] : 0;
// longueur utilisé en retirant la longueur de base
$longueur = $longueur_total - strlen($numero);
// calcule de la puissance de 10 en fonction de la longueur souhaité
$max = pow(10, $longueur);
// affichage du maximun de tour de la boucle
// echo "<h1>$max</h1>";
for ($i = 0; $i < $max; $i++) {
// différence de longueur
$diff = $longueur - strlen($i);
$zero = "";
for ($a = 0; $a < $diff; $a++) {
// ajout des zéro devant
$zero .= "0";
}
// concaténation du résultat
$resultat = $numero . $zero . $i;
// effacement des zéro
$zero = "";
// affichage du résultat
$row = [$resultat];
fputcsv($df, $row);
}
fclose($df);
echo ob_get_clean();
exit(0);Ou si vous avez une autre quelconque suggestion à me faire, ça me fera plaisir. L'essentiel pour moi est de résoudre ce problème de Lenteur.
Merci d'avance.