Ich mache ein Projekt mit Javascript für Client-Seite und Servlets für Server-Seite. Ich versuche, eine Möglichkeit zu implementieren, Client-Informationen in Echtzeit zu aktualisieren. Wenn ein Client einige Informationen in der Webanwendung aktualisiert, sehen andere Clients auch das Update. Ich fand, dass langes Polling eine gute Technik dafür ist. Dies ist der Code, mit dem ich versucht habe zu arbeiten.Lange Abfrage mit Ajax und Servlets
function poll() {
setTimeout(function() {
$.ajax({
type: "GET",
url: "server",
contentType: "application/json",
data: {
type: "update",
card: "string"
},
success: function(data) {
alert(data);
},
error: function(data) {
alert('eroor');
},
dataType: "json",
complete: poll });
}, 5000);
}
Ich versuche, eine Anfrage an den Server alle 5 Sekunden zu senden und die Antwort mit neuen Updates zu erhalten. Aber in allen Skeleton Codes, die ich im Internet gesehen habe, ist data:
nicht gesetzt. Ohne diese Einstellung würde der Server die Art der Anfrage kennen, die er erhalten hat, da es auch andere Arten von Anfragen gibt. Aber wenn ich data:
setze, werden keine Anfragen vom Client gesendet. Aber ohne data:
werden Anforderungen an den Server gesendet. Ist es falsch, data:
einzustellen? Ohne wie würde ich dem Servlet den Typ der Anfrage mitteilen?
Ich verstehe, dass wie in here Long Polling ist nicht das, was ich versuche zu tun. Aber kann jemand erklären, was ich tun soll und wo ich falsch mache.
Ich habe herausgefunden, dass keine Anfragen von der Konsole gesendet werden. Wenn data: nicht gesetzt ist, kann ich die Antworten in der Konsole sehen – user11
@ user11 Siehst du, dass dein Browser versucht, eine Anfrage zu senden? Z.B. in Firebugs Net Panel, siehe https://getfirebug.com/wiki/index.php/Net_Panel – wero
@ user11 überprüfen Sie dies. https://api.jquery.com/jquery.get. Sie können eine GET-Anfrage zusammen mit den Daten senden, indem Sie $ .get –