ホームページ > バックエンド開発 > PHPチュートリアル > 10 秒間隔で jQuery AJAX 呼び出しを使用すると、フィードバック項目が 2 つだけ表示されるのはなぜですか?

10 秒間隔で jQuery AJAX 呼び出しを使用すると、フィードバック項目が 2 つだけ表示されるのはなぜですか?

Linda Hamilton
リリース: 2024-11-03 09:13:29
オリジナル
804 人が閲覧しました

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

jQuery: 10 秒間隔での AJAX 呼び出しの実行

このシナリオでは、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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート