このシナリオでは、AJAX を使用して 10 秒ごとにフィードバック データベースにクエリが実行され、div に最新のフィードバックが表示されます。 。ただし、このコードでは、新しいフィードバック項目が継続的に更新されるのではなく、フィードバック項目が 2 つしか表示されないという問題が発生します。
このエラーは、後続の AJAX 呼び出しをトリガーするメカニズムがないことが原因で発生します。最初のものの後。これを修正するには、setInterval() または setTimeout() 関数を導入して呼び出しの繰り返しを自動化します。
setInterval() アプローチ:
<code class="javascript">setInterval(get_fb, 10000);</code>
このバリエーションでは、 get_fb() は、前の AJAX 呼び出しのステータスに関係なく、10 秒ごとに実行されます。
成功コールバックを使用した 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() with Complete Callback:
<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 呼び出しによって返されたエラーのため、成功コールバックは 1 回だけ機能することに注意してください。
以上が10 秒間隔で jQuery AJAX 呼び出しを使用すると、フィードバック項目が 2 つだけ表示されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。