Maison > développement back-end > tutoriel php > Pourquoi seuls deux éléments de commentaires s'affichent-ils lors de l'utilisation d'appels jQuery AJAX à un intervalle de 10 secondes ?

Pourquoi seuls deux éléments de commentaires s'affichent-ils lors de l'utilisation d'appels jQuery AJAX à un intervalle de 10 secondes ?

Linda Hamilton
Libérer: 2024-11-03 09:13:29
original
803 Les gens l'ont consulté

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

jQuery : effectuer des appels AJAX à un intervalle de 10 secondes

Dans ce scénario, une base de données de commentaires est interrogée à l'aide d'AJAX toutes les 10 secondes pour afficher de nouveaux commentaires dans un div . Cependant, le code rencontre un problème où il n'affiche que deux éléments de commentaires au lieu d'être continuellement mis à jour avec de nouveaux.

Solution :

L'erreur provient de l'absence de mécanisme pour déclencher les appels AJAX ultérieurs. après le premier. Pour remédier à cela, introduisez une fonction setInterval() ou setTimeout() pour automatiser la répétition d'appel.

Approche setInterval() :

<code class="javascript">setInterval(get_fb, 10000);</code>
Copier après la connexion

Dans cette variante, get_fb() s'exécute toutes les 10 secondes quel que soit l'état de l'appel AJAX précédent.

setTimeout() avec Success Callback :

<code class="javascript">var feedback = $.ajax({
    type: "POST",
    url: "feedback.php",
    async: false
}).success(function() {
    setTimeout(function() { get_fb(); }, 10000);
}).responseText;</code>
Copier après la connexion

Avec cette méthode, le le prochain appel s'exécute une fois l'appel AJAX en cours terminé avec succès.

setTimeout() avec rappel complet :

<code class="javascript">var feedback = $.ajax({
    type: "POST",
    url: "feedback.php",
    async: false
}).complete(function() {
    setTimeout(function() { get_fb(); }, 10000);
}).responseText;</code>
Copier après la connexion

Cette approche garantit qu'un nouvel appel AJAX est déclenché indépendamment du résultat de la précédente.

L'exemple fourni sur jsfiddle démontre la mise en œuvre correcte des deux méthodes. Notez que le rappel de réussite ne fonctionne qu'une seule fois en raison d'une erreur renvoyée par l'appel AJAX.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal