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 :

Affichage d'une image pendant un traitement javascript


Sujet :

JavaScript

  1. #1
    Membre du Club
    Inscrit en
    Septembre 2006
    Messages
    107
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Septembre 2006
    Messages : 107
    Points : 48
    Points
    48
    Par défaut Affichage d'une image pendant un traitement javascript
    Bonjour,

    Je travail sur une page où les données sont en caches dans une collection JS,
    je n'affiche les données que par 100.

    Le tableau d'affichage des données est construit par traitement javascript.

    Pour le changement de page je créer le tableau et je remplace l'ancien par le nouveau, ce qui prend un certain temps, pendant lequel j'aurais voulu afficher un gif animé pour que l'utilisateur ne s'inquiète pas.

    Problème 1 : L'image n'avait pas le temps de s'afficher.
    Solution : Settimeout

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
       $('#loading').empty().html(' <img  src="Images/load.gif" alt="Chargement en cours" />');  
     
        setTimeout(pageTo,10,page);
     
        return false;
    Problème 2 : L'image ne s'anime pas pendant le traitement.
    Solution : Bah la je sèche, si JS est responsable de l'animation du Gif et qu'il est occupé par ma fonction pageTo, je ne vois pas comment faire ...

  2. #2
    Expert confirmé
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Points : 4 164
    Points
    4 164
    Par défaut
    C'est bien la première fois que je vois utiliser le 3eme param de setTimeout... ta variable "page" contient la valeur correspondant au langage à utiliser ?

  3. #3
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Citation Envoyé par RomainVALERI Voir le message
    C'est bien la première fois que je vois utiliser le 3eme param de setTimeout... ta variable "page" contient la valeur correspondant au langage à utiliser ?
    Pour tout dire, utiliser les paramètres optionnels de setTimeout est plutôt déconseillé car ils n'ont pas la même utilité selon le navigateur.
    Si effectivement, le 3e paramètre correspond au langage de script utilisé pour IE, il correspond au(x) paramètre(s) à passer à la fonction (1er paramètre) pour les autres navigateurs .

    Mais je te rejoins dans ton analyse, je pense que le problème de aurelien.tournier vienne du fait qu'il utilise mal setTimeout

  4. #4
    Inactif  

    Profil pro
    Inscrit en
    Mai 2010
    Messages
    345
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 345
    Points : 496
    Points
    496
    Par défaut
    Citation Envoyé par aurelien.tournier Voir le message
    Bonjour,

    Je travail sur une page où les données sont en caches dans une collection JS,
    je n'affiche les données que par 100.

    Le tableau d'affichage des données est construit par traitement javascript.

    Pour le changement de page je créer le tableau et je remplace l'ancien par le nouveau, ce qui prend un certain temps, pendant lequel j'aurais voulu afficher un gif animé pour que l'utilisateur ne s'inquiète pas.

    Problème 1 : L'image n'avait pas le temps de s'afficher.
    Solution : Settimeout

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
       $('#loading').empty().html(' <img  src="Images/load.gif" alt="Chargement en cours" />');  
     
        setTimeout(pageTo,10,page);
     
        return false;
    Problème 2 : L'image ne s'anime pas pendant le traitement.
    Solution : Bah la je sèche, si JS est responsable de l'animation du Gif et qu'il est occupé par ma fonction pageTo, je ne vois pas comment faire ...
    Et la génération du tableau HTML tu la fais comment ? et elle te prend combien de temps sur ton navigateur ?
    Je dis ça, mais générer 400 lignes de tableau, il faut moins de 0.2s dans un JS bien optimisé.
    Si tu attaques le DOM à chaque ligne de tableau ajoutée, tu auras les processus de rafraichissement du dom à chaque fois et là tu pourras dire byebye aux perfs de ta machine

  5. #5
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Points : 22 933
    Points
    22 933
    Billets dans le blog
    125
    Par défaut
    Bonjour

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $('#loading').empty().html(' <img  src="Images/load.gif" alt="Chargement en cours" />');
    Travail inutile, il suffit de :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $('#loading').html('<img src="Images/load.gif" alt="Chargement en cours" />');
    Avec html() le contenu existant est totalement remplacé par le nouveau contenu.

    Voir : http://api.jquery.com/html/

    J'ai déjà constaté qu'une image animée ne devenait active qu'après la fin du script en cours. J'avais résolu le problème en divisant le code en 2 fonctions séparées. Attention, la seconde fonction ne doit pas appeler la première.

Discussions similaires

  1. [Débutant] affichage d'une image apres un traitement de Kmeans
    Par jijikkk dans le forum Images
    Réponses: 1
    Dernier message: 19/11/2009, 14h08
  2. Affichage d'une image pendant le chargement
    Par abbd dans le forum Windows Forms
    Réponses: 3
    Dernier message: 25/04/2008, 21h34
  3. [javascript] affichage d'une image dans une colonne
    Par mouna201 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 19/02/2007, 13h00
  4. [FLASH MX] Qualité d'affichage d'une image
    Par n_tony dans le forum Flash
    Réponses: 3
    Dernier message: 16/08/2004, 09h44
  5. Affichage d'une image sous linux
    Par Braim dans le forum x86 32-bits / 64-bits
    Réponses: 5
    Dernier message: 25/03/2003, 10h41

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