Une façon consiste à utiliser les gestionnaires HTTP et AJAX avec jQuery.
1. Initié demande côté serveur
$("#btnCreateInvoice").click(function() {
$.ajax({ type: "POST", url: "YourHttpHandler.ashx",
contentType: "text/html; charset=utf-8",
dataType: "html",
success: function(data) { start the block UI }
});
});
2. Interrogation
Et maintenant que vous devez faire est pour interroger le serveur à intervalle 't' et obtenir le statut. Pour cela nous devons appeler une fonction à l'intervalle 't' qui déclencherait un appel AJAX à un HTTPHandler pour obtenir le statut.
$(function() {
setInterval(updateStatus, 't');
});
function updateStatus() {
$.ajax({ type: "POST", url: "GetStatusHandler.ashx",
contentType: "text/html; charset=utf-8",
dataType: "html",
success: function(data) { process 'data' here and update the block UI message box }
});
}
Dans votre cas ici, le GetStatusHandler.ashx peut retourner le innerHtml complet pour le statut. Pour exemple, le premier appel, il retournera « Chargement première source ... », alors il pourrait revenir:
Loding première source ...
Chargement ... Deuxième source
et ainsi de suite.
C#, Java, PHP .. etc? –
mon côté serveur est C# mais je suppose que la réponse n'aurait pas de différence compte tenu de la langue arrière différente – leora
La réponse peut dépendre de -> La 'tâche longue' est exécutée côté client ou côté serveur? –