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 :

Exécuter une fonction avant une autre


Sujet :

JavaScript

  1. #21
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    397
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 397
    Points : 430
    Points
    430
    Par défaut
    Sinon il y avait peut-être un moyen de "tricher" un peu en faisant :

    button.onmousedown la on desactive le bouton

    button.onmouseup et la on execute le reste de la fonction.

    Pas sur que ça règle le problème de "reflow"...mais bon, j'aurais tenté ça.

  2. #22
    Membre habitué Avatar de islyoung2
    Homme Profil pro
    Inscrit en
    Juin 2008
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40

    Informations forums :
    Inscription : Juin 2008
    Messages : 236
    Points : 177
    Points
    177
    Par défaut
    Effectivement sa à marché voila ma nouvelle fonction principal :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    function ajouter_trier(src , dest ) 
    {
    	change_save_button('desactivate');
    	window.setTimeout(function() 
    	{
     
    		ajouter(src , dest);
    		sortSelect (dest);
    		change_save_button('activate');
    	}, 10); // t’as 10ms pour faire ton reflow, feignasse
    }
    beaucoup Mr Watilin vous me sauvez une autre après midi de cassement de tête

  3. #23
    Expert éminent
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Points : 9 127
    Points
    9 127
    Par défaut
    Je crois que j'ai compris ce qui te pose pb

    lorsque tu enchaine

    desactiver_bouton
    traitement_long
    activer_bouton

    les choses s'exécute bien ainsi et ton bouton est désactivé
    mais l'apparence du bouton ne changera que l'orsque l'évènement sera traité
    c'est a dire lorsque le navigateur va faire un refresh de ce que tu à modifié
    Or dans ton cas ton script ne rends pas la main à l'utilisateur donc tu ne vois rien.

    pour les traitement long comme ça je fais une fonction qui traite un lot et non la totalité des données
    lorsqu'elle à fini son lot elle rends la main
    un timer viens relancer la fonction pour un autre lot
    lorsque tous les lot sont fait le timer est détruit

    ainsi le traitement se passe en tache de fond et l'utilisateur peut continuer à travailler sur autre chose.

    du coup au premier appel
    disabled des éléments à bloquer
    constitution du timer

    pour tous les appels
    traiter un paquet de donner
    vérifier qu'il reste des données
    si plus de donné suppression du timer
    activer les éléments

    ça rends l'interface plus fluide

    en DOM/HTML5 on pourra avoir des "thread"

    A+JYT

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Appel d'une fonction dans une fonction d'une même classe
    Par script73 dans le forum Général Python
    Réponses: 3
    Dernier message: 06/03/2015, 10h18
  2. executer une fonction avant l autre
    Par salsoul dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 18/07/2007, 21h35
  3. Réponses: 8
    Dernier message: 10/01/2007, 21h10
  4. Réponses: 3
    Dernier message: 16/01/2006, 16h02
  5. Réponses: 4
    Dernier message: 17/03/2004, 17h24

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