J'ai developpé une page qui semble avoir un soucis de fonctionnement lié a la manière dont je l'ai construite. Je m'explique :
J'ai un fichier 'stage.php' avec les balises HTML classique, une div avec deux bouton et un emplacement pour le contenu:
<div class="uk-container uk-padding">
<ul class="uk-animation-slide-right-small" uk-tab>
<li class="navStage" id="all"><a><span uk-icon="list"></span> Tous les stages</a></li>
<li class="navStage" id="mine"><a><span uk-icon="pencil"></span> Mes stages</a></li>
</ul>
<div id="contenuStage">
</div>
</div>
Lorsque je clique sur l'un des deux boutons de navigation, cela me permet de loader dans la div 'contenuStage' du contenu (sans reload la page, et en gardant un url simple)
Dans le fichier stage.mine.php, j'ai un formulaire qui permet d'ajouter du contenu a la bdd, et je le fais en ajax. Le formulaire (html) et le code jquery pour l'envoie de celui ci sont present dans le fichier stage.mine.php et sont donc loadés en meme temps.
J'ai cependant remarqué un soucis. Si je vais dans l'onglet 'mes stages' puis que je retourne dans 'tous les stages' et qu'enfin je vais de nouveau sur 'mes stages', si j'envoie le formulaire il s'envoie 2 fois. (si je fais la manipulation N fois, il s'envoie N fois)
J'ai utilisé cette logique d'architecture pour plusieurs de mes pages, ce soucis apparait plus ou moins souvent et j'ai du mal a savoir a quoi il est du exactement. Je pensais que puisque le contenu de la div 'contenuStage' etait remplacer a chaque fois, c'etait comme un retour a zero...
Ma question est donc : est-ce que je peux résoudre mon soucis sans reconstruire toutes mes pages..?
J'ai effectivement essayé sur Chrome et Firefox, meme soucis. Pour ce qui est de l'onglet network, la requete est bien envoyé plusieurs fois a ce niveau la aussi.
J'ai l'impression que le script qui est loadé lors du changement d'onglet, reste en memoire quelques part et donc qu'au moment d'envoyer le formulaire, tous les scripts stockés en mémoire sont exécutés... C'est une théorie haha et ca m'aide pas trop a résoudre le soucis...
Oublier JQuery? Pour le remplacer par du Javascript Vanilla?
- Edité par victorberson 20 janvier 2021 à 11:32:46
Si dans network la requête est envoyé plusieurs fois, tu es au moins sur que le problème ne vient pas de ton serveur mais de ton client. Il est bien envoyé 2 fois en post ? Pas 1 fois en option et 1 fois en post ?
vérifie que tu as pas intégrer 2 fois l'appel quand même. Une fois dans le HTML et une fois dans le .js
J'ai choisi Angular mais React et Vue sont très utilisé.
Résolu !!! Les event listners etait sur le body donc n'etaient jamais supprimé mais plutot gardé en mémoire.
Jquery : requete ajax envoyé plusieurs fois
× 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.
"Etre vrai, peu le peuvent."
Friedrich Nietzsche
"Etre vrai, peu le peuvent."
Friedrich Nietzsche