In diesem Szenario wird alle 10 Sekunden eine Feedback-Datenbank mit AJAX abgefragt, um neues Feedback in einem Div anzuzeigen . Allerdings stößt der Code auf ein Problem, bei dem nur zwei Feedback-Elemente angezeigt werden, anstatt kontinuierlich mit neuen aktualisiert zu werden.
Der Fehler entsteht durch das Fehlen eines Mechanismus zum Auslösen nachfolgender AJAX-Aufrufe nach dem ersten. Um dies zu beheben, führen Sie eine setInterval()- oder setTimeout()-Funktion ein, um die Aufrufwiederholung zu automatisieren.
setInterval()-Ansatz:
<code class="javascript">setInterval(get_fb, 10000);</code>
In dieser Variante get_fb() wird alle 10 Sekunden ausgeführt, unabhängig vom Status des vorherigen AJAX-Aufrufs.
setTimeout() mit Success Callback:
<code class="javascript">var feedback = $.ajax({ type: "POST", url: "feedback.php", async: false }).success(function() { setTimeout(function() { get_fb(); }, 10000); }).responseText;</code>
Mit dieser Methode wird die Der nächste Aufruf wird ausgeführt, sobald der aktuelle AJAX-Aufruf erfolgreich abgeschlossen wurde.
setTimeout() mit Complete Callback:
<code class="javascript">var feedback = $.ajax({ type: "POST", url: "feedback.php", async: false }).complete(function() { setTimeout(function() { get_fb(); }, 10000); }).responseText;</code>
Dieser Ansatz stellt sicher, dass trotzdem ein neuer AJAX-Aufruf ausgelöst wird des Ergebnisses des vorherigen.
Das auf jsfiddle bereitgestellte Beispiel zeigt die korrekte Implementierung beider Methoden. Beachten Sie, dass der Erfolgsrückruf aufgrund eines vom AJAX-Aufruf zurückgegebenen Fehlers nur einmal funktioniert.
Das obige ist der detaillierte Inhalt vonWarum werden bei der Verwendung von jQuery-AJAX-Aufrufen in einem 10-Sekunden-Intervall nur zwei Feedback-Elemente angezeigt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!