|
Voir le sujet précédent :: Voir le sujet suivant
|
| Auteur |
Message |
| |
|
malopo WRInaute discret

Inscrit le: 06 Juil 2007 Messages: 60
|
Posté le : Mar Juil 17, 2007 23:37 Sujet du message: PHP en fond |
|
|
BOnjour,
J'ai un script PHP qui prend pas mal de temps a s'executer. J'aimerais donc faire en sorte qu'il puisse s'executer "en fond".
Un utilisateur ouvre une premiere page avec un formulaire a remplir par exemple. Pendant ce temps PHP tourne derriere et quand l'utilisateur passe a la page suivante, le script PHP a deja tourne et l'affichage de la page suivante se faitbeaucoup plus vite.
Comment peut-on faire qqch comme ca ?
Merci |
|
| |
|
 |
HawkEye Modérateur

Inscrit le: 23 Fév 2004 Messages: 12698 Localisation: Bah: First! C'te question...!?
|
Posté le : Mar Juil 17, 2007 23:40 Sujet du message: PHP en fond |
|
|
A mon avis, ça ira plus vite de réfléchir à du positionnement absolu en css de parties de script terminées par flush()
(simple piste... car je n'ai pas vu ton script). |
|
| |
|
 |
FloBaoti WRInaute passionné

Inscrit le: 30 Avr 2006 Messages: 594 Localisation: Montpellier
|
Posté le : Mer Juil 18, 2007 2:04 Sujet du message: PHP en fond |
|
|
Regarde du côté de ignore_user_abort.
Combiné à une iframe par exemple. Mais niveau sécurité ça me parait pas top.
En solution plus complexe, il y a :
- quand tu veux faire bosser le script, tu insère un enregistrement dans une BDD
- un script tourne en fond sur le serveur, et vérifie toutes les x minutes s'il y a un nouvel enregistrement dans la base (action à faire)... |
|
| |
|
 |
medium69 WRInaute accro

Inscrit le: 07 Mai 2005 Messages: 2151 Localisation: Je sais pas trop ;)
|
Posté le : Mer Juil 18, 2007 7:35 Sujet du message: PHP en fond |
|
|
| Et pourquoi pas tout simplement une mise en cache de tes pages ?? |
|
| |
|
 |
Leonick WRInaute accro

Inscrit le: 08 Aoû 2004 Messages: 8781 Localisation: Val de Marne
|
Posté le : Mer Juil 18, 2007 9:02 Sujet du message: PHP en fond |
|
|
| ou un appel en ajax de ton script ? |
|
| |
|
 |
webmasterlamogere WRInaute accro

Inscrit le: 17 Déc 2006 Messages: 1603 Localisation: urlrewriting.fr
|
Posté le : Mer Juil 18, 2007 9:41 Sujet du message: PHP en fond |
|
|
| FloBaoti a écrit: |
Regarde du côté de ignore_user_abort.
Combiné à une iframe par exemple. Mais niveau sécurité ça me parait pas top.
En solution plus complexe, il y a :
- quand tu veux faire bosser le script, tu insère un enregistrement dans une BDD
- un script tourne en fond sur le serveur, et vérifie toutes les x minutes s'il y a un nouvel enregistrement dans la base (action à faire)... |
Merci pour l'info. Je cherchais depuis longtemps un moyen de continuer le script même après un changement de page. Ca marche trop bien. |
|
| |
|
 |
Genova Nouveau WRInaute
Inscrit le: 30 Sep 2006 Messages: 34
|
Posté le : Mer Juil 18, 2007 12:07 Sujet du message: PHP en fond |
|
|
Il y a deux moyens d'executer une script PHP en "background" :
1) via la fonction register_shutdown_function()
2) En appelant le script PHP via une image (balise <img src="script.php" />) sur ta page, avec un code du genre :
| Code: |
header('Content-length: 85');
header('Content-type: image/gif');
print base64_decode(
'R0lGODlhAQABALMAAAAAAIAAAACAA'.
'ICAAAAAgIAAgACAgMDAwICAgP8AAA'.
'D/AP//AAAA//8A/wD//wBiZCH5BAE'.
'AAA8ALAAAAAABAAEAAAQC8EUAOw=='
);
flush();
// ICI ton CODE PHP (sans affichage). |
|
|
| |
|
 |
e-kiwi Modérateur

Inscrit le: 23 Déc 2003 Messages: 12346 Localisation: Toulouse
|
Posté le : Mer Juil 18, 2007 12:14 Sujet du message: PHP en fond |
|
|
| je sais pas si les hebergements mutualisé permettent tout ca par contre ... vérifie ou ton site est hébergé |
|
| |
|
 |
Genova Nouveau WRInaute
Inscrit le: 30 Sep 2006 Messages: 34
|
Posté le : Mer Juil 18, 2007 12:24 Sujet du message: PHP en fond |
|
|
| La plupart des hébergeurs (tous ?) permettent register_shutdown_function(). La seconde solution marche partout. |
|
| |
|
 |
| |
|
|