IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

jQuery Discussion :

plugin BlockUI, $.unblockUI ne fonctionne pas


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de baggie
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    755
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 755
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 ?

  2. #2
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

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

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Billets dans le blog
    125
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    $(document).ajaxStart($.blockUI).ajaxStop($.unblockUI);
    Voir : http://jquery.malsup.com/block/

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  3. #3
    Membre éclairé Avatar de baggie
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    755
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 755
    Par défaut
    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

  4. #4
    Membre éclairé Avatar de baggie
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    755
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 755
    Par défaut
    J'ai résolu mon problème car j'ai utilisé une autre méthode.

    Voici mon code actuel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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

    ?

  5. #5
    Membre chevronné
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    207
    Détails du profil
    Informations personnelles :
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Novembre 2010
    Messages : 207
    Par défaut
    Depuis ta popup pdf utilise
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    parent.window.FinMaj();

  6. #6
    Membre éclairé Avatar de baggie
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    755
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 755
    Par défaut
    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é"

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 22/03/2011, 14h05
  2. Plugin Quantum DB ne fonctionne pas
    Par Coulon Arnaud dans le forum Eclipse
    Réponses: 1
    Dernier message: 02/06/2009, 09h42
  3. Réponses: 0
    Dernier message: 01/10/2008, 14h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo