IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Faire attendre les visiteurs pendant un traitemment lourd


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2007
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2007
    Messages : 28
    Par défaut Faire attendre les visiteurs pendant un traitemment lourd
    Bonjour les développeurs !

    Alors voila, j'ai un nouveau défi pour vous : J'ai une page générée par une requête SQL et qui me sort gentiment une liste de programmes dans un formulaire avec une checkbox devant. Ces logiciels sont en fait des mises à jours que je dois proposer au téléchargemment à mes visiteurs chéris :p !

    Le soucis se pose ici : Avant de leur proposer le téléchargemment, il faut que je compresse tous mes petits (quelle vision utopique, vous remarquerez) fichiers !
    Ce traitemment est lourd avec un seul programme (trop long pour ne pas avoir besoin de modifier le temps d'execution des scripts dans php.ini). Bon, jusque là, ça va, je m'en sors, je réussi à faire tout ça, le soucis, c'est que le traitemment de mon script qui compresse mes fichiers est lourd, et une fois que je valide le formulaire de mes logiciels, au lieu d'afficher la page qui chargerait au fur et à mesure, mon navigateur reste planté là devant mon formulaire et balance la page de téléchargemment qu'une fois que celle-ci est terminée.

    J'aimerais donc avoir des idées pour faire patienter mes chers visiteurs pour ne pas qu'ils pensent que mon site à planté et qu'ils se disent "Mouarf, l'autre noob, il nous propose des mises à jours, mais marche pas son site pff !" Bah si, il fonctionne, mais c'est long
    Alors j'ai eu plusieurs propositions, notamment faire une animation en AJAX ou faire une popup ... je veux bien mais j'y connais rien en AJAX et la popup j'arrive pas à faire grand chose avec ...


    Alors j'avais pensé comme un grand à balancé d'abord sur une page ou j'aurais mis une chtite animation flash, ou gif ou juste un texte, peu importe et que le navigateur reste sur cette page, tant que le chargement de ma "page lourde" n'est pas terminée. Pour résumer, je pensais intercaller une page qui serait là rien que pour faire attendre mes chtits visiteurs... mais si je fais un header, il veut pas m'afficher du texte avant (normal pour un header) donc si quelqu'un sait comment balancer sur une autre page sans passer par un header... Faut pas hésiter !

    Merci d'avoir pris le temps de tout lire, et si vous avez un peu de courage, et que vous avez des solutions, Merci beaucoup d'avance d'avoir répondu

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    87
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 87
    Par défaut
    bonsoir,

    une autre solution serait d'utiliser ob_flush(); pour lancer l'affichage d'une partie de la page avant la fin du chargement. Par exemple, sur ta page à traitement lourd, tu fait un print de ton gif annimé de chargement puis tu utilise end_flush et enfin tu fait ton traitement. Alors, il y aura qq chose d'afficher malgrès que la page continue toujours à se charger...

  3. #3
    Membre chevronné Avatar de sohnic
    Femme Profil pro
    bioinfo
    Inscrit en
    Mai 2003
    Messages
    426
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : bioinfo

    Informations forums :
    Inscription : Mai 2003
    Messages : 426
    Par défaut
    Bonsoir,
    Ce qui est long, c'est le traitement ou l'affichage de la page ? Ou bien tu affiches au fur et à mesure du traitement ?
    Windows ou linux ?
    Selon, le cas tu ne procèderas pas de la meme facon. Si c'est une question d'affichage la méthode de supergogole me parait le meilleure.
    Sinon, si c'est le traitement avant affichage, personnellement, je lance un script separemment avec un pclose(popen(mon scipt)) (il y a d'autres methodes) qui me rend la main immediatement. Ensuite je fais un reload toutes les x secondes sur une page intermédiaire. Quand c'est fini, j'affiche la page définitive. Je joue avec des fichiers temporaires et les sessions.

    Sohnic

Discussions similaires

  1. Comment faire déconnecter les utilisateurs d'une base
    Par ENIT-Info dans le forum Access
    Réponses: 23
    Dernier message: 28/02/2017, 14h57
  2. Faire patienter les visiteur au chargement de la page.
    Par benhsaien dans le forum Général JavaScript
    Réponses: 14
    Dernier message: 18/08/2011, 18h14
  3. [SQL] Comment faire avec SQL pour que les visiteurs voient la même donnée
    Par syl2042 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 28/08/2007, 14h39
  4. Faire apparaître les entêtes d'un sous-état
    Par Le Pharaon dans le forum IHM
    Réponses: 3
    Dernier message: 10/07/2007, 12h52
  5. Que faire lorsque les performances d'une base chute ?
    Par Doctor Z dans le forum Oracle
    Réponses: 11
    Dernier message: 16/02/2005, 14h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo