Découpage de "gros" traitements - PHP - Programmation
Marsh Posté le 29-03-2005 à 17:40:33
Je vois plusieurs solutions a ton probleme.
1) Utiliser la balise meta avec un temps d'attente (par exemple 1 seconde).
2) Utiliser un JS.
3) Utiliser un "trick" qui necessite pas de refresh.
Le trick en question est le fait de "creer" un page html temporaire. Cette page va contenir des "images". Mais ces images ne sont la que pour lancer ton script, il n'y aura rien d'affiche.
Par exemple :
Code :
|
Lorsque le navigateur va essayer de recuperer les images en question, il va lancer ton script. Une fois que ton a traite les images en question, tu pourrais meme renvoyer une image afin d'avoir un "feedback" qui te permete de savoir ou en est le processus. Ensuite le navigateur va passer a l'image suivante, et du coup, il va re lancer ton script.
Il faut savoir que certains navigateurs ne chargent pas forcement les images les unes apres les autres. Il peuvent les charger 2 par 2, ou plus en meme temps. A chaque fois il creent une nouvelle connexion avec le serveur, et donc lancent une nouvelle fois ton script.
Bon, avec cette methode, il faut faire attention de l'impact sur les performances du serveur.
En general la creation de Thumbs est quelque chose de lourds, alors si en plus tu lance 2 fois ton script a chaque fois, tu risque de faire monter la charge du processeur.
Pour rappel, si tu as un hebergement mutualise, il est fort possible que dans les conditions generales il soit marque que tu ne peux pas avoir un script qui occupe plus de 5% du processeur (par exemple).
Donc attention avec cette methode.
Marsh Posté le 29-03-2005 à 18:59:29
La méthode avec les images est effectivement très élégante. Mais c'est aussi vrai que le serveur va se prendre une grosse claque.
Utiliser un refresh (à 10 sec par coup de 10 images, par ex) sur un serveur mutualisé, ça me paraît plus raisonnable.
Marsh Posté le 29-03-2005 à 21:04:23
Et bien, c'est tout plein de bonnes idées là-dedans
Merci beaucoup, je pars de ce pas tester ces propositions pour voir celle qui conviendrait le mieux.
Encore merci
Marsh Posté le 30-03-2005 à 08:07:02
Sinon tu pourrais pas faire la génération des Thumbs en local puis uploader par FTP sur ton serveur mutualisé ?
Marsh Posté le 29-03-2005 à 16:15:15
Bonjour,
Je suis actuellement en train d'écrire un script php dont le but est de générer des miniatures d'images qui sont présentes dans un répertoire. Techniquement, pas de réel problème pour la génération de ces miniatures, si ce n'est un problème de temps de traitement.
En effet, chez pas mal d'hébergeurs, le temps de traitement est limité (ce qui est fort louable). J'ai donc pensé découper mon traitement par tranche de 20 images, et de recharger la page pour traiter les 20 suivantes, ...
J'ai d'abord joué avec la commande header("location:..." ), avec des paramètres GET à l'URL indiquant la première image à traiter, ...
Seulement il y a un hic : s'il y a trop d'images, j'ai droit à un joli "max number of redirections exceeded" de la part de mon browser (ce qui est normal, vu que la page boucle sur elle-même un grand nombre de fois).
Mon cas particulier est-il une dérogation pour utiliser l'obsolescent meta http-equiv redirect, ou y a-t'il une solution plus élégante ?
Par ailleurs, j'aimerais afficher un log final de tout ce qui a été effectué pendant les traitements de toutes les "tranches". Y a-t'il plus élégant que de générer un fichier temporaire contenant lesdits logs (je précise que je considère qu'un seul utilisateur accède à la page à la fois, vu que c'est censé être dans la partie administration d'un outil) ?
D'avance merci pour vos conseils avisés...