Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript > Bibliothèques & Frameworks > jQuery
jQuery Forum d'entraide sur le framework jQuery. Avant de poster : Tutoriels jQuery, FAQ jQuery, Tous les tutoriels JavaScript, Toutes les FAQ JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 29/09/2011, 14h22   #1
Membre du Club
 
Homme
Inscription : janvier 2008
Messages : 261
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Indre et Loire (Centre)

Informations forums :
Inscription : janvier 2008
Messages : 261
Points : 40
Points : 40
Par défaut Envoi de variable exponentielle

Bonjour à tous,

J'ai sur une même page deux liens qui chargent des pages php.

Code :
1
2
3
 
<a href="#" id="Saisie1" id_joueur="<?php echo $id_joueur; ?>">Saisie#1</a>
<a href="#" id="Saisie2" id_joueur="<?php echo $id_joueur; ?>">Saisie#2</a>
Dans mon code javascript j'ai donc cela :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
 
$(document).ready(function() {
$('#Saisie1').click(function() {
		id_joueur = $(this).attr("id_joueur"); 
		$('#Joueur').load('module/saisie1.php?id_joueur=' + id_joueur);
		});
 
$('#Saisie2').click(function() {
		id_joueur = $(this).attr("id_joueur"); 
		$('#Joueur').load('module/saisie2.php?id_joueur=' + id_joueur);
		});
});
Tout fonctionne très bien, mais si je clique plusieurs fois sur les liens les temps de réponses deviennent très long.

En mettant un alert(id_joueur) dans les fonctions je m’aperçois que id_joueur est envoyé autant de fois que j'ai cliqué sur l'un ou l'autre des liens. Il faudrait qu'il soit envoyer qu'une seule fois mais je ne vois pas trop comment faire...

Merci d'avance de votre aide.
dam28800 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2011, 14h31   #2
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 040
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

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

Informations forums :
Inscription : mars 2002
Messages : 30 040
Points : 45 141
Points : 45 141
Code :
1
2
3
4
$('#Saisie1').one('click',function() {
		id_joueur = $(this).attr("id_joueur"); 
		$('#Joueur').load('module/saisie1.php?id_joueur=' + id_joueur);
		});
__________________
Ma page 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


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 29/09/2011, 14h43   #3
Membre du Club
 
Homme
Inscription : janvier 2008
Messages : 261
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Indre et Loire (Centre)

Informations forums :
Inscription : janvier 2008
Messages : 261
Points : 40
Points : 40
Merci je ne connaissais pas !

Par contre je l'ai appliqué mais j'ai toujours le problème
Les multiples boites de dialog sont encore présentes.

Merci d'avance.
dam28800 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2011, 15h01   #4
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 040
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

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

Informations forums :
Inscription : mars 2002
Messages : 30 040
Points : 45 141
Points : 45 141
inhibe le href ? avec un prevent default ou un return false
__________________
Ma page 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


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2011, 16h09   #5
Membre du Club
 
Homme
Inscription : janvier 2008
Messages : 261
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Indre et Loire (Centre)

Informations forums :
Inscription : janvier 2008
Messages : 261
Points : 40
Points : 40
Je ne sais pas si j'ai tout compris ?

Code :
1
2
 
<a href="#" onclick="return false" id="Saisie1" id_joueur="<?php echo $id_joueur; ?>">Saisie#1</a>
Quand je clique sur le même lien ça me renvoi qu'un alert mais dès que j'alterne non, j'ai dû rater quelque chose...

Merci
dam28800 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2011, 16h13   #6
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 040
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

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

Informations forums :
Inscription : mars 2002
Messages : 30 040
Points : 45 141
Points : 45 141
Code :
1
2
3
4
5
$('#Saisie1').one('click',function(e) {
                e.preventrDefault();
		id_joueur = $(this).attr("id_joueur"); 
		$('#Joueur').load('module/saisie1.php?id_joueur=' + id_joueur);
		});
__________________
Ma page 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


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2011, 16h20   #7
Membre du Club
 
Homme
Inscription : janvier 2008
Messages : 261
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Indre et Loire (Centre)

Informations forums :
Inscription : janvier 2008
Messages : 261
Points : 40
Points : 40
Ben en fait j'avais essayer cette solution (j'ai essayé un peu tout mais un n'importe comment...)

Je viens de tester à nouveau et toujours le même soucis...
dam28800 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2011, 16h32   #8
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 040
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

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

Informations forums :
Inscription : mars 2002
Messages : 30 040
Points : 45 141
Points : 45 141
#Joueur c'est quoi ?

le conteneur de tes liens ?
__________________
Ma page 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


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2011, 16h36   #9
Membre du Club
 
Homme
Inscription : janvier 2008
Messages : 261
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Indre et Loire (Centre)

Informations forums :
Inscription : janvier 2008
Messages : 261
Points : 40
Points : 40
Non les deux liens sont au dessus, c'est juste un div à vide qui affiche le load :

Code :
<div id="Joueur"></div>
dam28800 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2011, 16h45   #10
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 040
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

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

Informations forums :
Inscription : mars 2002
Messages : 30 040
Points : 45 141
Points : 45 141
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<script type="text/javascript">
$(function(){
$('#Saisie1, #Saisie2').one('click',function() {
 
		id_joueur = $(this).attr("id_joueur"); 
		$('#Joueur').html( id_joueur);
				}); 	
})
</script>
</head>
<body >
<a href="#" id="Saisie1" id_joueur="truc" onclick="return false;">Saisie#1</a>
<a href="#" id="Saisie2" id_joueur="machin" onclick="return false;">Saisie#2</a>
<div id="Joueur"> </div>
</body>
</html>
__________________
Ma page 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


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2011, 16h54   #11
Membre du Club
 
Homme
Inscription : janvier 2008
Messages : 261
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Indre et Loire (Centre)

Informations forums :
Inscription : janvier 2008
Messages : 261
Points : 40
Points : 40
Ben toujours le même problème, je suis avec chrome peut être que ça vient de là ?

Je regarde mais j'y crois pas trop...
dam28800 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2011, 16h56   #12
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 040
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

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

Informations forums :
Inscription : mars 2002
Messages : 30 040
Points : 45 141
Points : 45 141
autre possibilité :
stocker l'etat dans le data de l'objet

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<script type="text/javascript">
$(function(){
$('#Saisie1, #Saisie2').click(function() {
            if(!$(this).data('clicked')){
            $(this).data('clicked',true) 
		id_joueur=$(this).attr("id_joueur"); 
		$('#Joueur').html( id_joueur);}
            else{
            return false;
 
		}
				}); 	
})
</script>
</head>
<body >
<a href="#" id="Saisie1" id_joueur="truc" onclick="return false;">Saisie#1</a>
<a href="#" id="Saisie2" id_joueur="machin" onclick="return false;">Saisie#2</a>
<div id="Joueur"> </div>
</body>
</html>
__________________
Ma page 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


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2011, 17h00   #13
Membre du Club
 
Homme
Inscription : janvier 2008
Messages : 261
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Indre et Loire (Centre)

Informations forums :
Inscription : janvier 2008
Messages : 261
Points : 40
Points : 40
Avec le dernier script je ne peux cliquer qu'une seule fois sur le lien ?
Si je clique deux sur le même lien, ce n'est pas pris en compte.
dam28800 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2011, 17h09   #14
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 040
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

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

Informations forums :
Inscription : mars 2002
Messages : 30 040
Points : 45 141
Points : 45 141
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
$(function(){
var compteur=0
$('#Saisie1, #Saisie2').click(function() {
            if(!$(this).data('clicked')){
            $(this).data('clicked',true) 
		id_joueur=$(this).attr("id_joueur"); 
		$('#Joueur').html( id_joueur + compteur++);}
            else{
            return false;
 
		}
				}); 	
})
__________________
Ma page 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


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2011, 17h14   #15
Membre du Club
 
Homme
Inscription : janvier 2008
Messages : 261
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Indre et Loire (Centre)

Informations forums :
Inscription : janvier 2008
Messages : 261
Points : 40
Points : 40
Le compteur fait 0, 1 puis c'est tout.
dam28800 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2011, 17h27   #16
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 040
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

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

Informations forums :
Inscription : mars 2002
Messages : 30 040
Points : 45 141
Points : 45 141
oui donc le click n'est pris en compte qu'une seule fois
__________________
Ma page 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


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/09/2011, 14h18   #17
Membre du Club
 
Homme
Inscription : janvier 2008
Messages : 261
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Indre et Loire (Centre)

Informations forums :
Inscription : janvier 2008
Messages : 261
Points : 40
Points : 40
Oui c'est ça mais c'est bloquant car je ne peux faire qu'un seul clic sur chaque lien.
dam28800 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/09/2011, 18h05   #18
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 040
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

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

Informations forums :
Inscription : mars 2002
Messages : 30 040
Points : 45 141
Points : 45 141
c'etait pas le but recherché ?

si le but est d'attendre le retour avant de pouvoir cliquer à nouveau, passe par la solution du date en remettant le clicked à false sur le success ...
__________________
Ma page 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


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/10/2011, 21h48   #19
Rédacteur
 
Avatar de danielhagnoul
 
Homme Daniel Hagnoul
Étudiant perpétuel
Inscription : février 2009
Messages : 3 221
Détails du profil
Informations personnelles :
Nom : Homme Daniel Hagnoul
Âge : 61
Localisation : Belgique

Informations professionnelles :
Activité : Étudiant perpétuel
Secteur : Enseignement

Informations forums :
Inscription : février 2009
Messages : 3 221
Points : 6 767
Points : 6 767
Bonsoir

Si je comprends bien, vous souhaitez pouvoir cliquer plusieurs fois sur les liens, mais cela provoque autant de chargement (load) qu'il n'y a de click et si le click suivant est trop proche le chargement précédent n'est pas terminé et le temps de réponse devient trop long.

C'est un comportement normal, dirais-je.

Empêcher le clic suivant tant que le chargement est en cours est la bonne piste, mais j'utiliserais la propriété hidden (DOM) et la fonction de rappel de load.

<a href="#" id="Saisie1" data-id-joueur="111">Saisie#1</a>.

Code :
1
2
3
4
5
6
7
8
9
10
// avant jQuery 1.7 : bind au lieu de on
$("#Saisie1").on("click", function(){
	var self = this;
 
	$(self).prop("hidden", true);
 
	$("#Joueur").load("module/saisie1.php?id_joueur=" + $(self).data("idJoueur"), function(){
		$(self).prop("hidden", false);
	});
});
__________________

FAQ jQuery

Mon cahier d’exercices sur jQuery & Co

Si un message vous a aidé ou vous semble pertinent, votez pour lui !
danielhagnoul est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/10/2011, 09h42   #20
Membre du Club
 
Homme
Inscription : janvier 2008
Messages : 261
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Indre et Loire (Centre)

Informations forums :
Inscription : janvier 2008
Messages : 261
Points : 40
Points : 40
Bonjour,

Tout d'abord merci pour vos réponses.
Effectivement le problème est bien celui ci.

J'ai deux liens, et lors du clic sur l'un ou l'autre j'affiche une page via la fonction load de jQuery.
Cela fonctionne mais si la page n'est pas rechargé (ce qui est le but) il fait une sorte de "cumul" des load. Les temps de réponses sont donc énormes au bout de 5 ou 6 clics sur l'un ou l'autre des liens.
Si je ne mets pas la fonction load, ça fonctionne très bien (aucune page ne s'affiche mais je n'i qu'un alert)

Je viens de tester la dernière solution proposé mais ça cache juste le texte puis une fois chargé le texte apparaît de nouveau. Le load est quand même chargé plusieurs après des clics sur les liens.


Je regarde ce que je peux trouver, si on peux intilialiser le load ?

Merci d'avance
dam28800 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h52.


 
 
 
 
Partenaires

Hébergement Web