2017-06-25 5 views
0

私はFacebookのようなチャットシステムを構築しています。特定のユーザーに関連付けられたデータのみをポップアップするユーザーボックスに読み込みたいとします。 facebookのように、誰かがサイドバーのユーザーリストのユーザーの名前をクリックすると、チャットボックスが表示されます(うまくいけばいいです)。 すべて正常に動作していますが、データをフェッチしようとすると、データは「自分自身を繰り返す」状態を維持します。 チャットボックスを開いてデータを取得するコードを以下に示します。データを再取得するのを止めるajax

+0

「繰り返す」とはどういう意味ですか?それは少し重大です。 –

+0

たとえば、 _messagesBox.append( 'This is Box#' + _ id)という行を参照してください。 ユーザーを一度クリックすると、これがボックス#12に追加されます。 他のユーザーをクリックすると、「This is Box#12 This is Box#12」(2回)と追加されます。そしてサイクルが続きます –

答えて

0

これは、ループ内でAjaxリクエストをラップしたために発生している可能性があります。

$(".box").each(function(index) { ... }); 

ボックスクラスの添付された複数の要素が存在する場合、これは期待できる要求の量です。これをチェックする簡単な方法は、[開発ツール]の[ネットワーク]タブで、いくつのリクエストが行われたかを確認することです。

また、このようなチャットシステムにソケットを使用することを検討する必要があります。例えばsocket.ioを見てください。

+0

jqueryで実装する必要があります –

+0

その場合は、最後の段落を除いて言いました。あなたは確かに複数の.box要素を持っており、クリックするたびにそのコードを反復するだけです。クリックイベントから選択されたDOMだけでなく、ドキュメント全体を繰り返し処理することに注意してください。 – Adriani6

+0

まだ希望の結果が得られていません –

関連する問題