Je sèche sur un truc tout bête, un algo que je n'arrive pas à finaliser.
Je vous explique d'abord en français ce que je souhaite obtenir :
Citation
J'ai un script qui va récupérer plusieurs éléments et les compter, je mets le résultat de la somme dans la variable compteur.
Ensuite il faut que je fasse la différence entre le compteur précédent et le nouveau pour savoir si il y a autant d'éléments ou plus. La première opération est effectuée en boucle (toutes les 5 minutes) d'où le "précédent".
Une fois que j'ai la différence (dans une variable), je l'affiche.
Jusque ici OK, mais l'opération est réitérée à intervalles réguliers. Je veux que la différence s'incrémente au fur et à mesure.
Exemple : au premier tour de boucle j'obtiens une différence de 5, je l'affiche. Au deuxième tour de boucle j'obtiens une différence de 7 (soit 2 de plus qu'avant), j'affiche 7. Etc.
L'utilisateur, selon un événement peut remettre à 0 justement cette différence qui est affichée. Le problème est là, si au 2ème tour de boucle je n'ai pas mis à 0 la différence et qu'elle se remet toute seule, alors c'est pas bon.
C'est compliqué à exprimer est-ce que quelqu'un a suivi ?
L'utilisateur, selon un événement peut remettre à 0 justement cette différence qui est affichée. Le problème est là, si au 2ème tour de boucle je n'ai pas mis à 0 la différence et qu'elle se remet toute seule, alors c'est pas bon.
Tu comptes les éléments, tu affiches compteur-prevCompteur. Tu fais prevCompteur = compteur. Et tu recommences 5 secondes après.
C'est bien là le problème. Au prochain tour de boucle comme je lui fais compteur = new_compteur (cf ligne 8) ben au prochain tour quand je vais faire la différence il me trouvera 0.
C'est un système de notifications/alertes que l'utilisateur doit gérer.
Partie du code qui nous intéresse :
var compteur_old = parseInt(localStorage['compteur']);
var new_compteur = parseInt(nbAchetes) + parseInt(nbVendus) + parseInt(nbMp); // je calcule le nb total
var diff = new_compteur - compteur_old;
// j'affiche diff
localStorage['compteur'] = new_compteur;
1er tour :
- compteur_old = 10
- new_compteur = 12
- diff m'affiche donc 2
2ème tour :
- compteur_old = 12
- new_compteur = 12 (il a pas bougé, c'est celui qui est recalculé)
- diff m'affiche donc 0 (or il doit m'afficher 2 car l'utilisateur n'a pas pris en compte [selon un clic] les 2 alertes)
Tant que l'utilisateur n'a pas remis "diff" à 0 il doit s'incrémenter, c'est là où je pêche.
Tu peux faire utiliser var avec += parce que va déclare et += considère que c'est déjà déclaré.
Donc il faut que tu enlèves le var puisqu'il y est déjà ligne 5.
Problème de logique
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.