J'ai des problèmes pour faire fonctionner JQuery blockUI. J'utilise ce code:JQuery blockUI ne fonctionne que si je montre une alerte en premier
$.blockUI({
message : null,
overlayCSS : {
backgroundColor : '#000000;',
opacity : .4
}
});
Si je viens d'appeler ce qui précède et appelle la fonction de sommeil ci-dessous je reçois le comportement suivant: Rien ne se passe pendant 5 secondes Le bloc clignote
var start = new Date().getTime();
for (var i = 0; i < 1e7; i++) {
if ((new Date().getTime() - start) > 5000) {
break;
}
}
Si je lance ce code:
alert("foo");
$.blockUI({
message : null,
overlayCSS : {
backgroundColor : '#000000;',
opacity : .4
}
});
var start = new Date().getTime();
for (var i = 0; i < 1e7; i++) {
if ((new Date().getTime() - start) > 5000) {
break;
}
}
alert("bar");
Je reçois le comportement suivant:
L'alerte et le bloc apparaissent (je peux attendre indéfiniment avant d'effacer l'alerte)
Quand j'effacer le rien bouton d'alerte se produit pendant 5 secondes
Les commutateurs d'alerte à la « bar «message
l'alerte et le bloqueur clair quand je rejette l'alerte
Parce que pour la boucle verrouillera la page, rien ne fonctionnera ... c'est mauvais idée. – epascarello
De ce que vous dites, il semble qu'il y ait un thread qui est démarré par la méthode jquery blockUI qui n'a pas la chance de finir quand mon code "sleep" est exécuté. Existe-t-il un moyen de réécrire le code de veille afin qu'il ne suspende que le thread en cours et laisse le thread d'arrière-plan continuer et peindre le volet de blocage? – John