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

WebDev Discussion :

[WB9] progression d'un long traitement


Sujet :

WebDev

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    34
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 34
    Points : 47
    Points
    47
    Par défaut [WB9] progression d'un long traitement
    Voilà mon problème:
    L'internaute clique sur un bouton qui effectue un traitement long coté serveur.
    Comment actualiser la page pour indiquer l'avancement du traitement ?
    J'ai bien tenté un pageactualise() pendant le traitement, mais la page s'affiche en fin du traitement, donc inutile.
    J'ai aussi tenté par un timer() coté navigateur mais je ne trouve pas le moyen de passer des variables serveur vers le code navigateur.
    Un executetraitement via le timer pour appelé mon code serveur ne marche pas non plus car un traitement est déjà lancé.
    Les cookies coté serveur non plus sont inutiles car ecrit qu'une fois la page affichée.
    Je tourne donc en rond...
    En désespoir de cause, j'utilise la fenetre trace pas très jolie et limitée...

    Quelle solution puis-je adopter ?

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    410
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 410
    Points : 513
    Points
    513
    Par défaut
    Salut,

    Une façon simple de le faire est d'afficher une cellule avec une animation pour montrer qu'un traitement est en cours avec CelluleAfficheDialogue(), par contre cela ne gère pas la progression.
    A la fin du traitement tu fermes la cellule.

    Sinon regarde du coté de AJAXExécuteAsynchrone() pour faire communiquer le navigateur avec le serveur.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    34
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 34
    Points : 47
    Points
    47
    Par défaut
    Merci pour ta réponse mais je suis en webdev 9 qui ne connait pas l'ajax...
    j'ai contourné le problème en générant une page html à intervalle régulier pendant le traitement.
    J'appelle cette page en debut de traitement par un simple pageaffiche() avec en entete un meta refresh.
    Comme la page appelée est une page statique, la requête serveur continue meme si le navigateur est fermé.

    C'est pas la panacée, mais faute de mieux...

  4. #4
    Membre actif Avatar de peijnoob
    Profil pro
    Développeur informatique
    Inscrit en
    Août 2006
    Messages
    279
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2006
    Messages : 279
    Points : 294
    Points
    294
    Par défaut
    Bonsoir !

    Webdev 9 ne gère pas l'AJAX en natif, mais dans mes souvenirs, il est tout à fait possible de faire du javascript. Et l'AJAX, côté client, bah ce n'est ni plus ni moins que du Javascript, et c'est plutôt simple à mettre en oeuvre.

    Pour cela, il faut utiliser l'objet JS HttpWebRequest si mes souvenirs sont bons.

    Vous trouverez pleins d'infos sur le net à propos de la mise en oeuvre d'un système comme ça.

    Dans Webdev, pour écrire du code JS, il suffit de créer une procédure navigateur et de cliquer sur le texte "WL" à gauche dans l'entête de la fonction, et ça passe en mode javascript.

    Vous pouvez appeler les fonctions javascript de la même façon que les fonctions WLangage depuis du code navigateur (il suffit de garder à l'esprit que toutes les fonctions navigateurs, WL ou non, sont au final du JS).


    L'utilisation de javascript dans webdev est vraiment intéressante, et presque indispensable quand on veut obtenir certaines résultats !

    En espérant avoir pu vous aider !

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    34
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 34
    Points : 47
    Points
    47
    Par défaut
    Salut,

    Merci pour les précisions.

    Je vais voir de ce coté là. Il est clair que le JS est quasi indispensable.
    Je voulais éviter de passer par là, mais je n'ai pas trop le choix...

Discussions similaires

  1. [Prototype] Afficher la progression d'un long traitement
    Par TheSeb dans le forum Bibliothèques & Frameworks
    Réponses: 7
    Dernier message: 11/09/2008, 18h05
  2. Long traitement et progress bar
    Par Frog74 dans le forum VBA Access
    Réponses: 2
    Dernier message: 30/05/2008, 11h03
  3. Réponses: 7
    Dernier message: 27/01/2006, 01h44
  4. [MySQL] Long traitement. Comment faire patienter ?
    Par osmoze dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 25/11/2005, 00h15
  5. [ADO] Progression lors d'un traitement
    Par portu dans le forum Bases de données
    Réponses: 4
    Dernier message: 17/11/2004, 10h06

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