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

JavaScript Discussion :

PBM Display / Rafraichissement / timer...


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif Avatar de fredfred
    Inscrit en
    Septembre 2002
    Messages
    161
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 161
    Par défaut PBM Display / Rafraichissement / timer...
    Salut à tous,

    J'ai une page HTML avec la fonction Javascript suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
     function Export()
     {
      document.Frame_Export.location.href='/script/export.dll/Export_Fiche';
     
      document.all('textDiv').style.display='inline';
     
      <!-- BOUCLE D'ATTENTE DE GENERATION DU FICHIER --> 
      date = new Date();
      var curDate = null;
      do { var curDate = new Date(); } 
      while(curDate-date < 5000);
     
     
      <!-- TELECHARGEMENT DU FICHIER -->
      XLS.click();
     
      document.all('textDiv').style.display='none';
     }
    et dans le code HTML j'ai

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     <!-- BOUTON POUR GENERER LE FICHIER DANS l'IFRAME -->
     <form  method="Post" action="javascript:Export()">
      <input type="submit" value="Export" class="button" >&nbsp;
      <div id="textDiv" style="display:none;">Préparation du fichier...</div>
     </form>
    Le but étant d'afficher un message d'attente pendant que le fichier est généré coté serveur, puis d'ouvrir automatiquement une fenêtre de téléchargement.

    Tout fonctionne bien, sauf que le "...display=inline" ne s'effectue qu'APRES que la boucle d'attente soit finie, ce qui ne sert strictement à rien, du coup.

    Par contre, si j'intercale un "alert('toto')" entre le "...display=inline" et la boucle, le texte apparait bien au moment ou la popup d'alerte s'affiche, et avant le début de la boucle. Ce qui est débile !

    Y a t'il une ruse pour forcer le refresh d'un élément ?

    Ou bien autre chose qui m'échappe ???

    Ca me rend dingue ce truc !!

    Merci d'avance pour vos réponses

  2. #2
    Membre confirmé Avatar de phplive
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 179
    Par défaut
    Bjr

    Si tu restes toujours dans le même domaine (même site) sur ton serveur alors tu peux utiliser AJAX côté client (non ca n'a rien à voir avec un produit d'entretient ) de façon asynchrone (avec mettons de l'autre côté sur le serveur un script PHP ) et ca va faire exactement ce que tu veux.


    Si tu veux un exemple AJAX+PHP post à nouveau

  3. #3
    Membre très actif Avatar de fredfred
    Inscrit en
    Septembre 2002
    Messages
    161
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 161
    Par défaut
    Le problème c'est que je n'aurai pas accès au serveur de prod final, ni aux postes clients, donc je dois me limiter à utiliser du standard qui ne nécessite aucune configuration ou déploiement particulier, coté client ou serveur.

  4. #4
    Membre confirmé Avatar de phplive
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 179
    Par défaut
    Re

    AJAX ne nécessite aucun déploiement particulier ni côté client, ni côté serveur (d'ailleurs il marche avec des réquêtes HTTP donc peut importe le serveur) Sinon je ne m'en servirais pas !

    La limite est encore une fois que tu ne peux pas exécuter de requêtes en dehors de ton domaine.

    La seule chose à faire pour l'utilisateur est d'autoriser Javascript et au moins l'activeX pour ta page (hé oui IE n'intègre pas en natif l'objet nécessaire pour utiliser AJAX contrairement à FireFox ou Opera ... )

    Pour que ce fonctionne il suffit que tu appelles ta page qui prépare ton téléchargement non plus directement mais en utilisant AJAX et c'est tout

    AJAX est juste un acronyme pour Asynchronous JavaScript And XML (« XML et Javascript asynchrones ») mais ca marche également avec du texte lambda.

    AJAX existe depuis longtemps en plus ... mais je ne m'en sers que depuis très récemment

  5. #5
    Membre très actif Avatar de fredfred
    Inscrit en
    Septembre 2002
    Messages
    161
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 161
    Par défaut
    ben du coup, oui, ça m'interesse...

  6. #6
    Membre confirmé Avatar de phplive
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 179
    Par défaut
    RE

    Il existe encore un autre moyen sans AJAX : par contre tu dois être maître de la page qui génére le fichier à télécharger.

    En voyant ton XLS.click(); j'ai comme un doute ! Ca a un rapport avec Excel ?

    Tu appelles bien une page web pour générer ton fichier non ?

    Que te retourne-t-elle ?

Discussions similaires

  1. PBM rafraichissement champ lookup dans une grille
    Par fredfred dans le forum Composants VCL
    Réponses: 0
    Dernier message: 09/12/2010, 16h01
  2. Pbm pour afficher l'heure avec timer
    Par lostsoul dans le forum Général Java
    Réponses: 2
    Dernier message: 14/12/2009, 02h11
  3. [JList et Timer] Rafraichissement
    Par Shiftane dans le forum Composants
    Réponses: 3
    Dernier message: 27/12/2005, 16h28
  4. Probleme de rafraichissement d'un BDGrid
    Par marmotte dans le forum Bases de données
    Réponses: 10
    Dernier message: 28/05/2004, 18h07
  5. Pbm avec les '&'...
    Par AmaX dans le forum Composants VCL
    Réponses: 2
    Dernier message: 19/08/2002, 11h08

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