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 :

Accordian.pack.js & Ajax ?


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 11
    Par défaut Accordian.pack.js & Ajax ?
    Bonjour,

    J'utilise depuis longtemps un petit script du nom d'accordian.pack.js qui permet de faire des menus sympa, animés & pas trop lourd...

    Pour ceux qui ne connaissent pas : http://www.dezinerfolio.com/2007/07/...pt-accordions/

    Le script fonctionne parfaitement tant que ma page est complètement chargée au moment ou j'appelle new Accordian();

    Là où ça pose souci, c'est que je rempli un div de photos en Ajax.

    J'ai donc ma requête Ajax qui va chercher les photos à mettre dans le div, ensuite je met en place le menu, mais si j'appelle new Accordian(); avant que les photos ne soient complètement chargées, le script n'arrivent pas à calculer la hauteur du div et je ne vois apparaitre que la moitié des photos ! (que la moitié haute, elles sont disposées en ligne).

    Du coup, existe-t-il une solution pour appeler une fonction une fois que ma requête Ajax est complètement terminée (et pas onSuccess comme je fais actuellement, les images ne sont pas encore chargées à ce moment & du coup, le script se vautre...) ?

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    un petit script qui verfie le complete des images ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 11
    Par défaut
    Ok, merci !
    J'avais pensé à un truc dans cette idée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    var charge = false;
     
    while(!charge){
      foreach(image){
        if(image.complete()){ charge = true; } else { charge = false; }
      }
    }
     
    Accordian();
    Mais c'est pas très propre, si ?

    D'autant plus que si j'ai beaucoup d'image à charger, le navigateur ne risque pas de bloquer le JS à cause d'une boucle infinie (je crois que FF le fait) ?

  4. #4
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Par défaut
    Utilise plutôt une fonction avec un timer pour allez vérifier le complete , ce qui évitera de bloquer le processus , avec un message d'attente pendant le chargement des images

  5. #5
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    sujet déja abordé il y a 3 ou 4 ans ... ( si ce n'est plus)

    dans un setInterval
    verifie le ratio entre images.length et l'increment des images complete

    lorsque tu as 100% clearInterval et hop tu as le complete

    prévoir toutefois un maximum d'itérations de la boucle
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  6. #6
    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 : 54
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    while(!charge){
      foreach(image){
        if(image.complete()){ charge = true; } else { charge = false; }
      }
    }


    * foreach est loin d'être cross-browser en JavaScript.
    * Ta boucle ne sert à rien puisqu'au final, le flag aura la valeur du complete de la dernière occurrence !
    * image, c'est quoi pour toi ? (pas sûr que ce soit la même chose pour JavaScript !)
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [ALGORITHME] a propos du bin packing
    Par barbot dans le forum Algorithmes et structures de données
    Réponses: 10
    Dernier message: 05/01/2004, 23h27
  2. Qu'est-ce que Packed Record ?
    Par - Robby - dans le forum Langage
    Réponses: 2
    Dernier message: 03/09/2003, 11h39

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