2010-10-22 5 views
0

J'ai de sérieux problèmes de performances avec BlockUI et ASP.NET AJAX sur ma page aspx. J'essaie un simple blocage d'élément mais il s'estompe avec un lag/delay. Les erreurs html sur la page affectent-elles blockUI?BlockUI mauvaise performance

Je bloque un div divisant bien au-dessus du navigateur verticalement. Le déblocage fonctionne très bien pour la même page (sans retard/décalage). En cas de timeout sur mon Update Panel, le fadein fonctionne bien mais vient avec un décalage.

function blockMaster(){ 
    $(document).ready(function(){ 
     $('#ftMaster').block({message:"<h2>Just a moment...</h2>"}); 
     $('#<%=btnAJAX.ClientID%>').attr("disabled",true); 
    }); 
} 

Répondre

0

Je crois que les erreurs HTML empêcheraient blockUI de travailler du tout, ils étaient sérieux. Que se passe-t-il lorsque vous commentez l'appel block() depuis $(document).ready() et que vous l'appelez manuellement via Firebug une fois que la page est complètement chargée? Y a-t-il encore un retard? Avez-vous d'autres fonctions de gestionnaire appelées sur l'événement ready? Qui appelle blockMaster(), et quand?

+0

Merci pour la réponse Nick. Il n'y a pas de retard quand je bloque la console div de firebug. Je viens de mettre document.ready là comme je l'ai lu quelque part c'est une bonne pratique. J'appelle juste la fonction de bloc sur une publication asynchrone par un contrôle de serveur d'asp.net en dehors de mon panneau de mise à jour, je vérifie l'id de contrôle de publication et isinasyncpostback() et bloque la div si son apparié. –

+0

Aussi quand je teste dans IE, il n'y a même pas un fondu retardé, il bascule juste à visible, fadeout fonctionne bien. –

+0

La fonction que vous transmettez à $ (document) .ready() est appelée une seule fois lors du chargement initial de votre page, lorsque l'arborescence DOM a été construite (voir http://api.jquery.com/ready/). C'est une bonne pratique d'y mettre du code d'initialisation JS, cependant votre utilisation n'a pas de sens pour moi. Vous appelez blockUI() au chargement de la page, OU en tant que publication. Essayez de supprimer le wrapping $ (document) .ready(). – Simon

Questions connexes