Post traitement après génération d'une page

JulienPhp
Invité n'ayant pas de compte PHPfrance

03 nov. 2010, 17:17

Bonjour,

Je voudrais générer un contenu, l'envoyer au client, puis effectuer un traitement assez long ensuite.
Comment faire pour faire croire au client que le script Php est terminé, et qu'il cesse d'être en attente du serveur ?

Merci,
Julien.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

03 nov. 2010, 17:48

salut,

je ne pense pas que cela soit possible, l’exécution du php est séquentiel (donc du haut vers le bas et il attend la fin d’exécution des fonctions).

@+
Il en faut peu pour être heureux ......

JulienPhp
Invité n'ayant pas de compte PHPfrance

03 nov. 2010, 20:00

Après une longue recherche, j'ai trouvé la solution à mon problème.
Voir dans les commentaires ceux de tom, alan et arr1 sur http://www.php.net/manual/fr/features.c ... ndling.php

C'est tout de même dommage qu'un tel fonctionnement ne puisse pas se faire plus naturellement en Php.

1. Dans un premier temps on génère la page que l'on envoie.
2. On ferme la connexion avec le client.
3. On effectue des traitements plus lourds : mise en cache, mises à jour bdd...
L'impact doit souvent être intéressant en terme de performances.

Eléphant du PHP | 74 Messages

03 nov. 2010, 22:59

Et comme cela :

1. Dans un premier temps on génère la page que l'on envoie.
2. dans la page du client requête ajax en asynchrone (qui retourne ou ne retourne rien au client)
3. L'appel en ajax permet de faire tourner ce que l'ont veux sur le serveur sans que le client n'en attendent rien.


Pierre
Mon projet opensource de gestion de Devis, Commandes, Factures, pour TPE : OpenDCF : http://opendcf.1g6.biz

JulienPhp
Invité n'ayant pas de compte PHPfrance

04 nov. 2010, 11:07

Ça ne répond pas tout à fait à ma problématique.
D'autant que dans mon cas, le client n'est pas un navigateur mais un autre serveur.

C'est résolu,
Merci.