首页 >后端开发 >php教程 >为什么使用 jQuery AJAX 调用时间隔 10 秒只显示两个反馈项?

为什么使用 jQuery AJAX 调用时间隔 10 秒只显示两个反馈项?

Linda Hamilton
Linda Hamilton原创
2024-11-03 09:13:29814浏览

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

jQuery:以 10 秒的间隔进行 AJAX 调用

在此场景中,每 10 秒使用 AJAX 查询反馈数据库以在 div 中显示最新反馈。然而,代码遇到了一个问题,它只显示两个反馈项,而不是不断更新新的反馈项。

解决方案:

错误源于缺乏触发后续 AJAX 调用的机制在第一个之后。要纠正此问题,请引入 setInterval() 或 setTimeout() 函数来自动重复调用。

setInterval() 方法:

<code class="javascript">setInterval(get_fb, 10000);</code>

在此变体中, get_fb() 每 10 秒执行一次,无论前一个 AJAX 调用的状态如何。

setTimeout() 和成功回调:

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

使用此方法,一旦当前 AJAX 调用成功完成,就会执行下一个调用。

带有完整回调的 setTimeout():

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

此方法可确保触发新的 AJAX 调用,无论前一个结果的结果。

jsfiddle 上提供的示例演示了这两种方法的正确实现。请注意,由于 AJAX 调用返回错误,成功回调仅有效一次。

以上是为什么使用 jQuery AJAX 调用时间隔 10 秒只显示两个反馈项?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn