OVH Cloud OVH Cloud

regler timeout du navigateur ?

9 réponses
Avatar
julien.gautier
Bonjour à tous,

dans une appli web PHP, j'ai un problème de timeout : un script PHP a
besoin de tourner jusqu'à plusieurs minutes, puis affiche du html.

Les paramètres de timeout d'Apache et de PHP sont (a priori) réglés
correctement.

Mais mon navigateur (Safari) renvoie une erreur de timeout après 60 sec.
malgré ces réglages.

Y a-t-il une soltuion coté client ?

Merci d'avance.

9 réponses

Avatar
Patrick Mevzek

dans une appli web PHP, j'ai un problème de timeout : un script PHP a
besoin de tourner jusqu'à plusieurs minutes, puis affiche du html.


[..]

Y a-t-il une soltuion coté client ?


Vous ne vous en sortirez jamais comme ca, je pense.
Il faut dans un tel cas:
- répondre immédiatement au client: traitement en cours
- faire le traitement
- dans la page qu'a le client, soit mettre un lien vers la page de
réponse (qui repointe automatiquement sur la page d'attente si la réponse
n'est pas prete encore), soit un refresh automatiquement, soit faire du
push.

Vous en trouverez un exemple sur
http://www.stonehenge.com/merlyn/LinuxMag/col39.html
(en Perl, mais les principes sont identiques dans tout langage).

--
Patrick Mevzek . . . . . . Dot and Co (Paris, France)
<http://www.dotandco.net/> <http://www.dotandco.com/>

Avatar
julien.gautier
Patrick Mevzek wrote:


Y a-t-il une soltuion coté client ?


Vous ne vous en sortirez jamais comme ca, je pense.
Il faut dans un tel cas:
- répondre immédiatement au client: traitement en cours


ça c'est déjà le cas.

- faire le traitement
- dans la page qu'a le client, soit mettre un lien vers la page de
réponse (qui repointe automatiquement sur la page d'attente si la réponse
n'est pas prete encore), soit un refresh automatiquement,


bon... je crois que je vais devoir adopter cette solution.

soit faire du
push.


je vais étudier cela d'un peu plus près.

Merci beaucoup pour ces conseils.


Avatar
DJiK
soit un refresh automatiquement, soit faire du push.



Refresh je comprend, mais push? Pusher quoi?


Et comment faire ça SVP? Avec header de PHP ce n'est pas possible de changer la page après qq instant. :-( J'aimerai bien connaitre une autre méthode...

--
DJiK

Avatar
Pierre Goiffon
"Julien Gautier" a écrit dans le message de
news:1gk4bqc.llxdoynrt640N%
dans une appli web PHP, j'ai un problème de timeout : un script PHP a
besoin de tourner jusqu'à plusieurs minutes, puis affiche du html.

Les paramètres de timeout d'Apache et de PHP sont (a priori) réglés
correctement.

Mais mon navigateur (Safari) renvoie une erreur de timeout après 60
sec. malgré ces réglages.

Y a-t-il une soltuion coté client ?


Je serai tout à fait de l'avis de Patrick : faire du push d'une manière ou
d'une autre (cad envoyer le contenu à l'utilisateur, par exemple et tout
simplement : par email), ce n'est pas normal qu'un traitement soit aussi
long.

Sinon, il y a la technique habituelle d'afficher une page d'attente
rafraichie régulièrement, et une fois le ttraitement fini on redirige vers
le résultat (cf site de réservation de la FNAC pour un exemple pratique)

Avatar
julien.gautier
DJiK wrote:

soit un refresh automatiquement, soit faire du push.



Refresh je comprend, mais push? Pusher quoi?


Et comment faire ça SVP? Avec header de PHP ce n'est pas
possible de changer la page après qq instant. :-( J'aimerai bien
connaitre une autre méthode...


il faut lire la référence donnée :


Vous en trouverez un exemple sur
http://www.stonehenge.com/merlyn/LinuxMag/col39.html
(en Perl, mais les principes sont identiques dans tout langage).


Avatar
julien.gautier
Pierre Goiffon wrote:

"Julien Gautier" a écrit dans le message de
news:1gk4bqc.llxdoynrt640N%
dans une appli web PHP, j'ai un problème de timeout : un script PHP a
besoin de tourner jusqu'à plusieurs minutes, puis affiche du html.

Les paramètres de timeout d'Apache et de PHP sont (a priori) réglés
correctement.

Mais mon navigateur (Safari) renvoie une erreur de timeout après 60
sec. malgré ces réglages.

Y a-t-il une soltuion coté client ?


Je serai tout à fait de l'avis de Patrick : faire du push d'une manière ou
d'une autre (cad envoyer le contenu à l'utilisateur, par exemple et tout
simplement : par email), ce n'est pas normal qu'un traitement soit aussi
long.



ok, je m'incline.

Sinon, il y a la technique habituelle d'afficher une page d'attente
rafraichie régulièrement, et une fois le ttraitement fini on redirige vers
le résultat (cf site de réservation de la FNAC pour un exemple pratique)


ok.

Merci.


Avatar
Patrick Mevzek

soit un refresh automatiquement, soit faire du push.



Refresh je comprend, mais push? Pusher quoi?


Cf http://wp.netscape.com/assist/net_sites/pushpull.html
par exemple.

Et comment faire ça SVP? Avec header de PHP ce n'est pas possible de
changer la page après qq instant. :-( J'aimerai bien connaitre une autre
méthode...


Pour info, il semble qu'IE 6 ne support pas le push de ce que j'ai pu
lire.
Donc selon votre public...


--
Patrick Mevzek . . . . . . Dot and Co (Paris, France)
<http://www.dotandco.net/> <http://www.dotandco.com/>


Avatar
DJiK
Cf http://wp.netscape.com/assist/net_sites/pushpull.html
par exemple.



Oui plus clair que le 1er lien.

Mais trop compliqué pour moi pour le moment! :-)

Avatar
julien.gautier
Patrick Mevzek wrote:

Vous ne vous en sortirez jamais comme ca, je pense.
Il faut dans un tel cas:
- répondre immédiatement au client: traitement en cours
- faire le traitement


pardon de revenir si tard poser une autre question.... sans doute
triviale.

Quelles sont les techniques les plus utilisées/recommandées pour lancer
via php un traitement sur la machine serveur, tout en redonnant la main
à apache/php (sans qu'il y ait besoin d'attendre l fin du traitement) ?