Eine Möglichkeit besteht darin, HTTP-Handler und AJAX mit jQuery zu verwenden.
1. Starten Sie Server-Seite Anfrage
$("#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. Polling
Was kommt als nächstes Sie tun müssen, um den Server in 't' Intervall abzufragen und den Status zu bekommen. Dazu müssen wir eine Funktion im 't'-Intervall aufrufen, die einen AJAX-Aufruf an einen HTTPHandler initiiert, um den Status zu erhalten.
$(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 }
});
}
In Ihrem Fall hier kann die GetStatusHandler.ashx Rück die komplette innerhtml für Status. Für zB auf dem es zuerst nennen kehrt ‚Erste Seite Lädt ...‘, zurückkehren könnte es dann:
Loding Quelle Erste ...
Zweite Quelle Loading ...
und so weiter.
C#, Java, PHP .. usw.? –
mein serverside ist C#, aber ich würde annehmen, dass die Antwort keinen Unterschied gegeben hat, unterschiedliche Backendsprache – leora
Die Antwort kann abhängen -> Die 'lang laufende Aufgabe' wird clientseitig oder Serverseite ausgeführt? –