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 11/03/2011, 14h09   #1
Membre confirmé
 
Avatar de baggie
 
Inscription : octobre 2007
Messages : 676
Détails du profil
Informations personnelles :
Âge : 23
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : octobre 2007
Messages : 676
Points : 225
Points : 225
Par défaut plugin BlockUI, $.unblockUI ne fonctionne pas

Bonjour,

j'utilise le plugin BlockUI pour griser ma fenêtre et afficher un gif de chargement pendant qu'un ajax est en train de s'exécuter.

Ma fenêtre se grise bien et mon gif apparaît correctement quand je rentre dans mon ajax, mais cela ne s'arrête jamais. A la fin de l'ajax, la fenêtre ne se dégrise pas et le gif reste affiché.

Mon code :
Code :
1
2
3
4
5
6
7
 
function MajEnCours( phrase ) {
	$.blockUI({ message: '<h2><img src="Images/ajax-loader.gif" />&nbsp;'+phrase+'</h2>' }); 
}
function FinMaj() {
	$(document).ajaxStop($.unblockUI);
}
Mon code d'ajax :
Code :
1
2
3
4
5
6
7
8
9
 
window.MajEnCours("Création de la base en cours ...");
$.ajax({
	type: 'GET',
	url: lien2,
	success: function(html) {
		window.FinMaj();
	}
});
Il faut savoir que mon ajax s'exécute dans une boucle for.
J'ai essayé de sortir les appels à mes fonctions : avant le for et après le for, en dehors de l'ajax, etc ... Mais rien à faire, le window.FinMaj(); n'a pas l'air de se déclencher

J'ai également essayé les exemples montrés dans la doc du plugin, mais j'ai toujours le même comportement ou alors, la fenêtre grise s'enlève alors que l'ajax n'a pas fini de s'exécuter.

Est-ce que vous voyez d'où ça pourrait venir ?
baggie est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/03/2011, 21h01   #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

Je ne connais pas ce plugin, mais après avoir regardé rapidement la documentation je crois que la ligne ci-dessous doit être appelée au début de l'exécution du code jQuery (elle ne doit donc pas figurer dans une fonction).

Code :
$(document).ajaxStart($.blockUI).ajaxStop($.unblockUI);
Voir : http://jquery.malsup.com/block/
__________________

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 14/03/2011, 08h31   #3
Membre confirmé
 
Avatar de baggie
 
Inscription : octobre 2007
Messages : 676
Détails du profil
Informations personnelles :
Âge : 23
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : octobre 2007
Messages : 676
Points : 225
Points : 225
Merci danielhagnoul mais j'avais déjà testé la solution (ainsi que beaucoup de choses proposées dans le lien du plugin) mais rien à faire, ça ne fonctionne pas plus

De plus, cette solution fonctionne sur un autre projet avec le même code.

Le problème vient peut-être du fait de ma boucle for, mais je ne vois pas comment faire
baggie est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/03/2011, 11h48   #4
Membre confirmé
 
Avatar de baggie
 
Inscription : octobre 2007
Messages : 676
Détails du profil
Informations personnelles :
Âge : 23
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : octobre 2007
Messages : 676
Points : 225
Points : 225
J'ai résolu mon problème car j'ai utilisé une autre méthode.

Voici mon code actuel :
Code :
1
2
3
4
5
6
7
8
9
10
 
window.MajEnCours("Création de la liste en cours ...");
$.ajax({
	type: 'GET',
	url: lien2,
	success: function(html) {
		window.FinMaj();
		location.href = 'pdf_details_site.php?site='+site;
	}
});
Maintenant, mon nouveau problème concerne l'ouverture de mon pdf dans une popup.
J'ai donc mis un window.open() à la place du location.href, mais du coup mon plugin blockUI restera en continu dans ma première fenêtre de base.

Y'a-t-il possibilité pour :
- ouvrir une popup vierge,
- mettre mapopup.MajEnCours('Liste en cours');
- quand c'est fini, mettre FinMaj() et afficher le PDF

?
baggie est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/03/2011, 17h03   #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
Depuis ta popup pdf utilise
Code :
parent.window.FinMaj();
__________________
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 15/03/2011, 08h14   #6
Membre confirmé
 
Avatar de baggie
 
Inscription : octobre 2007
Messages : 676
Détails du profil
Informations personnelles :
Âge : 23
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : octobre 2007
Messages : 676
Points : 225
Points : 225
Merci scourjean pour ta réponse mais ça ne fonctionne pas comme je le souhaiterai.

En faisant comme ça, ma fenêtre principale se grise et ensuite mon PDF s'ouvre et se charge. Ce n'est pas ma popup qui se grise. Et en plus, une fois le PDF généré, la fonction FinMaj() ne passe pas

[EDIT] Bon en fait mon traitement des données a changé, donc je n'utilise plus le plugin. Au moins c'est "réglé"
baggie 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 00h16.


 
 
 
 
Partenaires

Hébergement Web