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 21/07/2011, 09h47   #1
Membre du Club
 
Avatar de Microbulle
 
Alexandre
Dessinateur et webmaster
Inscription : janvier 2005
Messages : 357
Détails du profil
Informations personnelles :
Nom : Alexandre
Âge : 34
Localisation : France, Corrèze (Limousin)

Informations professionnelles :
Activité : Dessinateur et webmaster
Secteur : Communication - Médias

Informations forums :
Inscription : janvier 2005
Messages : 357
Points : 66
Points : 66
Par défaut Chat et jQuery [Gérer le mode Asynchrone]

Bonjour,

Pour informations:
Mon précédent tread était liée à une reflexion stratégique sur la connexion au travers de jQuery. Ce problème étant résolu, afin de ne pas plus poluer mon post initial, j'ai pris la décision de le taggé résolu et d'ouvrir celui-ci qui va traiter de la construction de mon application en ajax.

Le projet:
Actuellement je tente de développer un t'chat en jquery. Je ne connaissait pas bien ce type de programmation et je m'y familiarise au fur et à la mesure des problématique à gérer. La partie Php ne me posant pas de problème, des essais ont été réaliser pour faire un retour et une exploitation en json, tout ce petit monde fonctionne à merveille.

La problématique actuelle:
Actuellement je suis en train de travailler sur le champ de saisie qui est un simple textarea. Celui-ci soit pouvoir prendre la saisie et un appuie sur la touche "entrer" évènement 13 provoque l'envoie du message dans la base d donnée. J'y suis pratiquement arrivé mais je bloque encore sur de nouveau points.

En effet, je cherche maintenant à ne pas revenir à la ligne lorsque j'appuie sur entrée et en même temps une majuscule + entrer soit provoqué non pas l'envoie mais un saut de ligne.

J'ai réussi à capturer la touche entrée en mode "keypress" mais je n'ai pas su trouver pour le majuscule + entrer.

J'aimerais modifier le code suivant pour réaliser ce comportement, si c'est possible.
Code :
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
 
//La gestion de l'envoie d'une sasie au serveur
$(document).ready( function() {
 
	$('#chatForm').bind('keypress', function(e) {
 
        //Touche entrée
        if(e.keyCode==13){
 
            //Charge la saisie dans la variable
            gSaisie = $('#cSaisie').val();
 
            //Si la siaise n'est pas vide
            if(gSaisie) {
 
				//Effacer le champ de saisie
				$('#cSaisie').val('').focus();
 
				//Envoie au serveur une requête de saisie dans le bon canal avec l'id du pseudo
				alert('[' + Pseudo + ']: ' + gSaisie);
 
                                //Evite un saut de ligne (existe-t-il une meilleure solution ?)
				return false;
			}
        }
	});
});
La conclusion:
Pour le moment j'ai volontairement mis un alert() à la place de l'envoie de la requête car je procède à un débuggage progressif. Cette ligne sera remplacé par du requêtage en ajax, dans le futur.

Remerciement:
Je remercie déjà, alors que je n'ai aucune réponse, pour l'aide que vous me porterais.
Microbulle est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/07/2011, 10h01   #2
Modérateur
 
Avatar de Golgotha
 
Homme cédric
Développeur informatique
Inscription : août 2007
Messages : 732
Détails du profil
Informations personnelles :
Nom : Homme cédric
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : août 2007
Messages : 732
Points : 1 566
Points : 1 566
Envoyer un message via Skype™ à Golgotha
Je pense que la FAQ Jquery est assez complète sur ce point :

Comment puis-je intercepter les frappes multitouches ?
__________________
modérateur webmasters - développements web & php
faq jQuery - règles du forum - faqs web
mon espace perso
Venez participez au deuxième defi Web !
Golgotha est déconnecté   Envoyer un message privé Réponse avec citation 11
Vieux 21/07/2011, 10h15   #3
Membre du Club
 
Avatar de Microbulle
 
Alexandre
Dessinateur et webmaster
Inscription : janvier 2005
Messages : 357
Détails du profil
Informations personnelles :
Nom : Alexandre
Âge : 34
Localisation : France, Corrèze (Limousin)

Informations professionnelles :
Activité : Dessinateur et webmaster
Secteur : Communication - Médias

Informations forums :
Inscription : janvier 2005
Messages : 357
Points : 66
Points : 66
Oui j'y suis aller avant de poster
Mais je songeais plus une fois la capture réalisé. Est-ce que le return false; est la bonne solution ?

Merci.
Microbulle est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/07/2011, 10h19   #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 019
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 019
Points : 45 114
Points : 45 114
Vu que ça doit être à peu près la seule ...
__________________
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 21/07/2011, 10h58   #5
Membre du Club
 
Avatar de Microbulle
 
Alexandre
Dessinateur et webmaster
Inscription : janvier 2005
Messages : 357
Détails du profil
Informations personnelles :
Nom : Alexandre
Âge : 34
Localisation : France, Corrèze (Limousin)

Informations professionnelles :
Activité : Dessinateur et webmaster
Secteur : Communication - Médias

Informations forums :
Inscription : janvier 2005
Messages : 357
Points : 66
Points : 66
Hey, justement, il serait intéressant de complémenté

Bon ceci dit, j'ai pas encore trouvé comment attribuer à mon textarea un saut de ligne sur le maj+enter.

Je pense à un $('#champSaisie').??? Voila c'est ça quand on débute, il y a des ??? à remplacer par des choses que l'on ne connais pas encore
Microbulle est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/07/2011, 11h01   #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 019
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 019
Points : 45 114
Points : 45 114
un += sur le 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 22/07/2011, 09h36   #7
Membre du Club
 
Avatar de Microbulle
 
Alexandre
Dessinateur et webmaster
Inscription : janvier 2005
Messages : 357
Détails du profil
Informations personnelles :
Nom : Alexandre
Âge : 34
Localisation : France, Corrèze (Limousin)

Informations professionnelles :
Activité : Dessinateur et webmaster
Secteur : Communication - Médias

Informations forums :
Inscription : janvier 2005
Messages : 357
Points : 66
Points : 66
C'est bon, je suis arrivé à faire un comportement correct.

Je passe maintenant à la partie rigolote du programme. L'asynchrone.

Je sait que l'ajax, le jquery aussi peut effectuer des traitements asynchrones. Je me demandais si, dans mon js, je ne ferais pas une fonction qui irais chercher toutes les 2 secondes dans une bdd les nouveaux messages. Et à ce sujet, j'aimerais avoir quelques informations.
  • Faut-il partir d'un timer puis lancer une fonction qui contiendrais un appel en jquery ?
  • Faut-il partir d'un jQuery, placer son timer et donc son exécution indépendamment d'une fonction ?
  • Au final j'aurais deux zones qui doivent aller chercher des informations qui leurs sont propres, soit je me base sur le même timer, soit je fais un timer séparé de 2 et 3 secondes.

J'ai regardé des cas similaires mais je n'ai pas encore su trouver l'exactitude du fonctionnement que j'aurais à écrire. J'espère donc déjà dégrossir le terrain avec la demande ci-dessus. Je pense qu'au fil de la conversation de nouvelles questions seront de mise pour en apprendre un peu plus. L'idéal étant quand même de resté encapsulé dans le jQuery.

Merci
Microbulle est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/07/2011, 13h11   #8
Membre du Club
 
Avatar de Microbulle
 
Alexandre
Dessinateur et webmaster
Inscription : janvier 2005
Messages : 357
Détails du profil
Informations personnelles :
Nom : Alexandre
Âge : 34
Localisation : France, Corrèze (Limousin)

Informations professionnelles :
Activité : Dessinateur et webmaster
Secteur : Communication - Médias

Informations forums :
Inscription : janvier 2005
Messages : 357
Points : 66
Points : 66
Ça peut semblé stupide...
J'ai trouvé un élément de réponse tardif

J'ai vue dans un exemple la chose suivante:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
 
//Ici je suppose que toutes les 2500 ms on va lancer une fonction.
//Est loadChat ou loadChat() qu'il faut marqué ici ?
setInterval(loadChat, 2500);
 
function loadChat() {
   //Ici on trouve un jQuery allant cherché sur un fichier php des informations
   //Je suppose que c'est la BDD
   //success:
      //Mettre à jour la div
   //Erreur:
      //Mettre à jour la div
}
Je pense avoir compris le principe (reprenez-moi si je me trompe).
Comment après on fait pour la liste des canaux et les personnes connectés/déconnectés ?
Microbulle est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/07/2011, 20h24   #9
Modérateur
 
Avatar de Golgotha
 
Homme cédric
Développeur informatique
Inscription : août 2007
Messages : 732
Détails du profil
Informations personnelles :
Nom : Homme cédric
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : août 2007
Messages : 732
Points : 1 566
Points : 1 566
Envoyer un message via Skype™ à Golgotha
Il faut pas oublier que tu devra gerer un index dans ta base de donnée et dans ton javascript ou php pour ne pas ré-afficher les messages en double.

Par exemple dans ta BDD tu as :

0
*
*
110 - "salut !"
111 - "salut golgotha"
112 - "ça va"
113 - "oui et toi"
114 - "bien bien"

L'utilisateur qui arrive va peut etre listé les 5 derniers messages, bon ça c'est facile, une requette en ajax sur les 5 derniers, ensuite dans ta page tu doit mettre à jour ton index à 114, puis à chaque envoie de ta requêtes ajax tu envoie cette index, pour pouvoir faire la requete, si il y à des données supérieur à 114 alors, je renvoie toutes ces données, puis je met à jour mon index.

Il faut aussi gérer ça quand tu envoie un message, changement d'index et récupération des messages posté avant.

j'espère que cette réfléxion t'aidera
__________________
modérateur webmasters - développements web & php
faq jQuery - règles du forum - faqs web
mon espace perso
Venez participez au deuxième defi Web !
Golgotha est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/07/2011, 21h31   #10
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
Bonjour

Il existe un plugin : http://anantgarg.com/wp-content/uplo...jquerychat.zip

Voir : http://anantgarg.com/2009/05/13/gmai...e-jquery-chat/
__________________

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 23/07/2011, 14h49   #11
Membre du Club
 
Avatar de Microbulle
 
Alexandre
Dessinateur et webmaster
Inscription : janvier 2005
Messages : 357
Détails du profil
Informations personnelles :
Nom : Alexandre
Âge : 34
Localisation : France, Corrèze (Limousin)

Informations professionnelles :
Activité : Dessinateur et webmaster
Secteur : Communication - Médias

Informations forums :
Inscription : janvier 2005
Messages : 357
Points : 66
Points : 66
Aucun intérêt de prendre un plugin...

Je préfère apprendre et codé moi-même

Merci toutefois de ta contribution qui n'a rien à voir avec ma demande.
Microbulle 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 00h31.


 
 
 
 
Partenaires

Hébergement Web