2011-10-10 4 views
2

J'utilise le jQuery BlockUI plugin pour ajouter un splash de chargement à une page qui prend quelques secondes à charger en raison de requêtes CAML. Le problème est, la page charge avant puis le BlockUI affiche pendant une fraction de seconde et disparaît. Il semble que JS les exécute dans le mauvais ordre et je n'arrive pas à comprendre pourquoi. Y at-il quelque chose que je peux changer dans le code ou est BlockUI juste pas destiné à être utilisé sans Ajax?BlockUI sur DOM Ready

$(document).ready(function() { 
    $.blockUI(); 
}); 
$(window).ready(function() { 
    $.unblockUI(); 
}); 

Dans l'en-tête html j'appelle jquery, BlockUI, et le script common.js contenant les requêtes CAML et charger les éléments de la page (dans cet ordre). Le script est exécuté common.js également sur DOM prêt, que je soupçonne peut-être une partie du problème ...

Répondre

3

Essayez ceci:

<html> 
    <head> 
     <script src="jquery.js"></script> 
     <script src="blockui.js"></script> 
     <script type="text/javascript"> 
      $.blockUI(); 
     </script> 
    </head> 
    <body> 
     … 
    </body> 
</html> 

Cela devrait bloquer le chemin de l'interface utilisateur avant toute autre a été chargé .

Editer: Ok, j'ai pris la peine de le rechercher ... $.blockUI prend en charge une fonction de rappel.

Ainsi, vous pouvez/devez faire ceci:

$(document).ready(function() { 
    $.blockUI({ 
     onBlock: function() { 
      // Invoke your CAML stuff here. 
     } 
    }); 
}); 
+0

Merci, mais fait qu'elle ne se présente pas du tout ... – kramden88

+0

Voir ma ... – vzwick

+0

modifier Eh bien, je n'avais pas besoin snippy remarque-ce n'est pas comme si je n'avais pas pris la peine de lire moi-même la documentation-mais ce que vous suggérez fonctionne très bien. Merci. – kramden88