2010-02-23 11 views
2

J'utilise une boîte de dialogue jquery ui pour informer l'utilisateur que sa requête est en cours pendant que le client traite certaines données. Cependant, comme vous le savez tous, il faut beaucoup plus de temps pour traiter que firefox. Quel est le meilleur modèle pour s'assurer que la boîte de dialogue de progression est affichée pendant au moins un certain temps, de sorte qu'elle ne clignote pas seulement dans Firefox, et que même si la minuterie expire, le dialogue reste actif jusqu'à la fin du navigateur En traitement?Assurez-vous que la boîte de dialogue de progression jquery est affichée pendant au moins un certain temps

Répondre

3

Vous pouvez l'adresser de plusieurs façons, bien qu'ils fassent tous essentiellement une certaine dérivation de la mise en file d'attente.

Par exemple:

$("#startLink").click(function(){ 
    var $dialog = $(".dialog"); 
    $dialog.dialog({ 
     open: function(e, ui){ 
      // delay any close operations for at least 2 seconds 
      $dialog.queue(function(){ 
       setTimeout(function(){ 
        $dialog.dequeue(); 
       }, 2000); 
      }); 
      // if you're using jQuery 1.4, you can do this instead 
      // $dialog.delay(2000); 
     } 
    }); 

    // do some processing here 

    $dialog.queue(function(){ 
     $dialog.dialog('close'); 
     $dialog.dequeue(); 
    }); 
}); 

Quoiqu'il en soit, tout ce que vous faites vraiment est d'assurer un certain retard en utilisant le construit dans le système de file d'attente. Vous pouvez l'accomplir sans utiliser le système de file d'attente, mais c'est un autre exemple.

+0

Génial, fonctionne comme un charme. Merci beaucoup. – Ryan

+0

Bonne réponse @BBonifield! Bon usage des bonnes pratiques aussi! –