2011-03-13 1 views
4

Dans Prototype, existe-t-il des événements de démarrage/arrêt AJAX qui vous permettent de créer un script pour l'affichage global d'un message d'attente modal pendant les chargements AJAX?Prototype - Des événements de démarrage/arrêt AJAX déclenchent-ils globalement un message d'attente modale AJAX?

Comme, avec jQuery J'utilise ce un script dans la mise en page de l'application à l'échelle mondiale afficher une boîte de dialogue d'attente modal pour tous les événements jQuery AJAX:

<script type="text/javascript"> 
$(document).ajaxStart(function() { 
    $.blockUI({ message: '<h1><img src="../images/busy.gif" /> Just a moment...</h1>' }); 
}); 
$(document).ajaxStop(function() { 
    $.unblockUI(); 
}); 
</script> 

Merci - beaucoup apprécié?

Répondre

9

Avec le prototype que vous avez accès à une variable Ajax.activeRequestCount (more info here)

Il contient, à tout moment, le montant de demande AJAX active (ceux créés par Prototype, de toute façon), par la surveillance leurs onCreate et événements onComplete

EDIT

Untested mais quelque chose comme cela devrait fonctionner:

Ajax.Responders.register({ 
    onCreate: showProcessing, 
    onComplete: hideProcessing 
}); 

function showProcessing() { 
    if(Ajax.activeRequestCount > 0){ 
     $('inProgress').show(); 
    } 
} 

function hideProcessing() { 
    if(Ajax.activeRequestCount <= 0){ 
     $('inProgress').hide(); 
    } 
} 
+0

merci cool - vous ne sauriez pas d'un exemple pour le suivi de cela? Serait-ce juste d'avoir une fonction fonctionnant continuellement en vérifiant> 1 pour afficher l'attente et <1 pour effacer l'attente? Merci! – Reno

+0

Cela aide beaucoup - merci beaucoup! – Reno

+1

Vous pouvez remplacer «non testé» par «fonctionne parfaitement». – Reno