Heim >Backend-Entwicklung >PHP-Tutorial >Warum werden bei der Verwendung von jQuery-AJAX-Aufrufen in einem 10-Sekunden-Intervall nur zwei Feedback-Elemente angezeigt?

Warum werden bei der Verwendung von jQuery-AJAX-Aufrufen in einem 10-Sekunden-Intervall nur zwei Feedback-Elemente angezeigt?

Linda Hamilton
Linda HamiltonOriginal
2024-11-03 09:13:29811Durchsuche

Why are Only Two Feedback Items Displayed When Using jQuery AJAX Calls on a 10-Second Interval?

jQuery: AJAX-Aufrufe im 10-Sekunden-Intervall durchführen

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.

Lösung:

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn