Ich schreibe Code in PHP, die Benutzereingaben analysiert. Ich hoffe, es über eine AJAX-Anfrage mit jquery zu analysieren. Ich möchte dem Benutzer in Echtzeit Feedback geben, während ich die Berechnungen vorbereite. Zum Beispiel: "Upload Ihrer Eingabe", "Analyse", "Vorbereitung Endergebnis" und so weiter. Wie kann ich damit umgehen?inform Benutzer während der PHP-Berechnung w/jquery
Antwort
Sie müssen ein anderes Backend-Skript verwenden als die, an die Sie Ihre Anfrage senden. Ihre ursprüngliche Ajax-Anfrage kann die zu analysierende Benutzereingabe speichern, und ein anderer Prozess prüft, ob neue Daten regelmäßig bearbeitet werden, und beginnt mit der Arbeit, wenn sie etwas findet. Dieser Hintergrundprozess kann dann seinen Fortschritt aufzeichnen, z. Verwenden einer Datei oder einer Datenbank.
Die nachfolgenden Ajax-Anforderungen überprüfen diese Fortschrittsdatei oder den Datenbankeintrag und zeigen den Fortschritt dem Benutzer an.
Eine andere (kompliziertere) Lösung wäre die Verwendung von Comet, um Informationen über den Status vom Server zum Browser zu übertragen. Es gibt ein Comet-Plugin für JQuery in Arbeit, wie in StackOverflow question 136012 beschrieben.
Angenommen, Sie haben einen Dienst unter /service-status.php, der den Status des Jobs überprüft und eine Zeichenfolge zurückgegeben hat, können Sie in einem Intervall so etwas tun.
var intervalId;
intervalId = setInterval(function() {
$.ajax({
type: "POST",
url: "/service-status.php",
data: "jobid=" + id,
success: function(msg){
if (msg === 'Finished') {
clearInterval(intervalId);
}
alert("Status: " + msg);
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
alert("He's dead Jim"):
clearInterval(intervalId);
}
})
}, 500);
Dies würde Ihren Dienst alle 500ms abfragen. Es wird außerdem davon ausgegangen, dass Sie "Fertig" zurückgeben, wenn Sie fertig sind. Dementsprechend anpassen. Ich könnte auch einen Zähler hineinstellen, um das Intervall zu löschen, nur für den Fall, dass Sie nicht Ihren eigenen Server DDOS.
- 1. Inform MTurkR von AWS_ACCESS_KEY_ID und AWS_SECRET_ACCESS_KEY
- 2. Benutzer werden aufgefordert, ein Passwort während der Verwendung von gitolite
- 3. Benutzer auffordern, Anwendung während der Deinstallation zu schließen (in WiX)
- 4. iOS uiscrollview Bilder drehen, während der Benutzer scrollt
- 5. Neue Farbe beibehalten, während der Benutzer online ist?
- 6. C#: Fehler 403 während der Authentifizierung Benutzer auf Twitter C#
- 7. Ändern Sie Benutzer während der Ausführung von Csh-Skript mit Nicht-Root-Benutzer
- 8. Facebook PHP SDK, Posten als während der Benutzer 1 angemeldete Benutzer 2
- 9. Ziehen während der Laufzeit
- 10. Wie kann ich einen inform JDialog vor System.exit() in Java Swing anzeigen? (Closed)
- 11. Überprüfen, ob ein Benutzer während der Verwendung der Funktion Confirm() auf 'OK' oder 'Abbrechen' geklickt hat?
- 12. Visual Studio 2015 Enterprise: Load Test, Laden der Benutzer extrem langsam während der Aufwärmphase
- 13. Was kann dem Benutzer gewährt werden, um den Index der Tabelle während der Abfrage zu verwenden?
- 14. Wie kann der Benutzer einen Benutzernamen während der Registrierung bei Django social-auth festlegen?
- 15. Benachrichtigung der Benutzer über die erforderlichen iOS-Version während der Installation von iOS-App
- 16. Aktualisiere den Standort auf der Karte, während sich der Benutzer in Android bewegt
- 17. VBA-Code während der Arbeitsmappenöffnung
- 18. In Inform 7, ist es möglich, ein zweites Nomen-Konstrukt mit "Pull" zu verwenden?
- 19. Fortschrittsbalken während der Verzögerung anzeigen?
- 20. .htaccess während der Aktualisierung der Web App
- 21. MKMapView Callbacks erhalten, während die Karte vom Benutzer gezogen wird?
- 22. Kann jQuery Kommas hinzufügen, während Benutzer Zahlen eingeben?
- 23. Initialisierung während der Konstruktion?
- 24. Sitzungsproblem während der Aktualisierung
- 25. selen.common.exceptions.StaleElementReferenceException während der Seitenaktualisierung
- 26. Fehler während der Übermittlung
- 27. Mustererkennung während der Pipe
- 28. Startfehler während der Hauptformularerstellung
- 29. Ausgabe, während der Parametereinstellung
- 30. GUID Einfügen als Benutzername, während Benutzer DNN programmgesteuert erstellen