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 :

app windows metro js+html5 fonction pas toujours exécutée


Sujet :

JavaScript

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2014
    Messages : 15
    Points : 9
    Points
    9
    Par défaut app windows metro js+html5 fonction pas toujours exécutée
    salut à tous.

    pour une application windows metro js+html5 pour windows 8.1 je fais appel à cette fonction qui elle même fait appel à 2 fonctions:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function modif() {
        supalim();
        creeralim();
    }
    voici le contenu de la première fonction:
    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
    function supalim() {
     
        var id = document.getElementById("alim").value;
     
        var dbPath = Windows.Storage.ApplicationData.current.localFolder.path + '\\aliments.sqlite';
        SQLite3JS.openAsync(dbPath)
        .then(function (db) {
            return db.runAsync('DELETE FROM aliments WHERE ID = ?', [id])
            .then(function () {
                return db.runAsync('DELETE FROM conversion WHERE ID_aliments = ?', [id])
            })
            .then(function () {
                db.close();
                console.log('après sup');
            });
        });
    }
    et de la deuxième:
    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    function creeralim() {
        var newid;
        //on récupère les valeurs des différents champs
        var nom = document.getElementById("nom").value;
        var cal = document.getElementById("Calories").value;
        var ig = document.getElementById("IG").value;
        var prot = document.getElementById("Proteines").value;
        var glu = document.getElementById("Glucides").value;
        var lip = document.getElementById("Lipides").value;
        var fib = document.getElementById("Fibres").value;
        var conv = document.getElementById("convers").value;
        console.log('1 : la val conv vaut : ' + conv);
     
        var dbPath = Windows.Storage.ApplicationData.current.localFolder.path + '\\aliments.sqlite';
        SQLite3JS.openAsync(dbPath)
        .then(function (db) {
            return db.runAsync('INSERT INTO aliments (Nom, Calories, IG, Proteines, Glucides, Lipides, Fibres) VALUES (?, ?, ?, ?, ?, ?, ?)', [nom, cal, ig, prot, glu, lip, fib])
            .then(function () {
                newid = db.lastInsertRowId;
                console.log('2 avant insert avec conv = ' + conv + 'et newid = ' + newid);
                return db.runAsync('INSERT INTO conversion (gr, cl, ID_aliments) VALUES (?, ?, ?)', [100, conv, newid])
            })
            .then(function () {
                db.close();
                console.log('3 avant getalim avec newid = ' + newid);
                getalim(newid);
            });
        });    
    }
    ces deux fonctions fonctionnent très bien chacune dans son coin mais quand j'appel la fonction modif, parfois tout fonctionne mais parfois seul l'une ou l'autre des fonction est exécutée ou aucune.

    J'ai déjà essayé de mettre un sleep de 10sec entre les deux appels après mettre rendu compte que quand je débug step by step tout fonctionne correctement mais cela n'a rien changé.

  2. #2
    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
    utiliser le deboggeur pour voir précisément où ça plante

    A+JYT

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2014
    Messages : 15
    Points : 9
    Points
    9
    Par défaut
    bha justement au debug tout fonctionne correctement.

    EDIT: via les logs je constate que les requêtes sont effectuées dans les désordre... comment cela se fait-il?

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

Discussions similaires

  1. Fonction rename qui renomme pas toujours
    Par darkwall_37 dans le forum Débuter
    Réponses: 10
    Dernier message: 05/12/2012, 12h47
  2. fonction pas toujours existante
    Par exyacc dans le forum Développement
    Réponses: 1
    Dernier message: 22/09/2010, 17h33
  3. fonction intval ne fonctionne pas toujours ?
    Par ninikkhuet dans le forum Langage
    Réponses: 2
    Dernier message: 24/12/2009, 11h23
  4. paramètre string fonction -> fonctionne pas toujours?!
    Par francoisvba dans le forum Macros et VBA Excel
    Réponses: 24
    Dernier message: 12/12/2008, 19h08
  5. Fonction ne retournant pas toujours une valeur
    Par mastochard dans le forum C
    Réponses: 14
    Dernier message: 25/05/2006, 13h13

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