コメントをロードすると、各レコードにIDが付けられます。ページにロードされている最高のレコードIDがわかります。
JSタイマーがajax呼び出しを行うとき、最もロードされたIDをサーバーに送り返すようにします。クエリは、IDが指定された値よりも大きいレコードをロードするようにのみ指定できます。その場合、ページ上のレコードよりも新しいレコードのみを取得します。
次に、このデータがページに返送されたら、コメントブロック全体を置き換えるのではなく、既存のコメントブロックの最後に新しいデータを追加するだけです。
これにより、既存のコメントを再ロードする必要がなくなります。ちらつきを防ぎ、SQLクエリをより効率的にし、同じデータを何度も送信することから帯域幅を節約します。
それがあなたが始めるのに十分な説明であることを願っています。
最後に、もう1つ。トピックから外れていますが、言及する必要があります。JavascriptsetInterval()
関数を避けることをお勧めします。代わりに使用setTimer()
し、反復ごとに再トリガーします。
これは、setInterval()
JSコードによって遅延が発生した場合に問題が発生する可能性があるためです。たとえばalert()
、ユーザーが長時間画面に表示されたままになっている場合、システムをブロックしsetInterval()
ている間に発生した通話alert()
はすべて積み上げられ、すぐに次々に起動されます。 JSが制御を取り戻すと。これは深刻な問題になる可能性があります。setTimer()
代わりに使用すると、この問題を回避できます。
より良い説明については、ここを読んでください:http: //bonsaiden.github.com/JavaScript-Garden/#other.timeouts