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 20/12/2010, 17h13   #1
Membre confirmé
 
Inscription : avril 2006
Messages : 507
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 507
Points : 239
Points : 239
Par défaut UI datepicker beforeShowDay s'execute avant la fin de onChangeMonthYear

Bonjour à tous,

L'énoncé de mon problème est pratiquement contenu dans le titre de ce post...

lorsque l'on change de mois sur mon datepicker l'évènement onChangeMonthYear lance une requête $.post qui récupère un tableau de date.

beforeShowDay est censé mettre en surbrillance les dates contenues dans le tableau.

Le problème étant que le temps que ma requête post s'exécute, beforeShowDay à déjà fini sa tache en traitant un tableau encore vide...

est-il possible de conditionner l'execution de beforeShowDay à la fin de l'évènement onChangeMonthYear ?

merci d'avance pour vos réponses
Alexdezark est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2010, 22h30   #2
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

Peu importe le contexte, toutes les transactions AJAX sont asynchrones, donc l'exécution du code se poursuit indépendamment du résultat de la transaction AJAX et du temps nécessaire pour l'obtenir.
__________________

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 21/12/2010, 14h55   #3
Membre confirmé
 
Inscription : avril 2006
Messages : 507
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 507
Points : 239
Points : 239
Merci Daniel pour cette réponse,

Je m'en doutais un peu compte tenu du caractère asynchrones des requêtes.

l'option permettant d'activer un caractère synchrone des requêtes (async: false) empecherait-elle beforeShowDay de s'exécuter tant que onChangeMonthYear (qui envoi une requête post) n'a pas fini sa tâche ?

En attendant j'ai utilisé une autre solution qui est de charger dès l'initialisation du datepicker un tableau de toutes les dates dont j'ai besoin pour les 6 mois suivants.

un peu plus lourd, plus long et moins élégant que l'idée de départ mais au moins ça marche ;-)

Bonne journée à tous, je laisse ce Post ouvert encore un petit peu au cas ou...
Alexdezark est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2010, 20h49   #4
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

Rendre la transaction AJAX synchrone c'est bloquer la page web et l'utilisateur qui risque d'aller voir ailleurs.

Mais il y a les méthodes : enable, disable qui permettent de "mettre au frigo" le datepicker le temps voulu, mais cela peut-il fonctionner dans votre cas je l'ignore car je n'ai jamais testé un cas similaire.

Voir : http://jqueryui.com/demos/datepicker/#method-enable

Il y a aussi show et hide.
__________________

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 24/12/2010, 13h12   #5
Membre éclairé
 
sébastien courjean
Inscription : novembre 2010
Messages : 204
Détails du profil
Informations personnelles :
Nom : sébastien courjean
Localisation : France, Indre et Loire (Centre)

Informations forums :
Inscription : novembre 2010
Messages : 204
Points : 319
Points : 319
Et pourquoi ne pas utiliser unbind sur l'évènement beforeShowDay lorsque onChangeMonthYear s'éxécute et ensuite tu bind beforeShowDay quand c'est fini non ?
__________________
Sébastien Courjean
Développeur Web
scourjean@cyres.fr
http://www.cyres.fr/
scourjean est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/12/2010, 13h34   #6
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

Je pense que ce doit être faisable, mais je vois une objection. En désactivant uniquement l'événement "beforeShowDay" on n'empêche pas l'utilisateur de manipuler le Datepicker et de voir un tableau vide.

Citation:
Envoyé par Alexdezark Voir le message
lorsque l'on change de mois sur mon datepicker l'évènement onChangeMonthYear lance une requête $.post qui récupère un tableau de date.

beforeShowDay est censé mettre en surbrillance les dates contenues dans le tableau.

Le problème étant que le temps que ma requête post s'exécute, beforeShowDay à déjà fini sa tache en traitant un tableau encore vide...
__________________

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 24/12/2010, 13h41   #7
Membre éclairé
 
sébastien courjean
Inscription : novembre 2010
Messages : 204
Détails du profil
Informations personnelles :
Nom : sébastien courjean
Localisation : France, Indre et Loire (Centre)

Informations forums :
Inscription : novembre 2010
Messages : 204
Points : 319
Points : 319
Bah après tu couple cette solution à la tienne pour obtenir le résultat voulu.
__________________
Sébastien Courjean
Développeur Web
scourjean@cyres.fr
http://www.cyres.fr/
scourjean est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h53.


 
 
 
 
Partenaires

Hébergement Web