2011-09-14 2 views
0

は、私は私をからかって続けて、この単純なスクリプトを持っていますそれは前の応答に、それは1行、2行、4行、8,16に行く..ブラウザ(と帯域幅)は狂って行く...jQueryの取得/ AJAX繰り返し要求が二重の応答をレンダリングするたびに

それはなぜですか?私は何が欠けていますか、どうすればその1行だけを前に付けることができますか?事前に

おかげ

アンドレアス

+0

サーバーから戻ってくるJSON応答を投稿してください。 – bstakes

答えて

0

あなたが代わりにsetIntervalsetTimeoutを使用する必要があります。

+0

そして私はArnaudに同意します。この質問はあなたの問題の大きなリソースです:http://stackoverflow.com/questions/729921/settimeout-or-setinterval – Blazemonger

0

5秒後にAJAX応答が終了しなくても、SetIntervalが発生しても、新しいコンテンツをslideDownした後にsetTimeoutを使用することをお勧めしますか?

function populate(){ 
    $.get('lib/log.php?action=update&latest='+latest, function(data) { 
     if(data.id!=latest){ 
      latest = data.id; 
      $(data.news).hide().prependTo('#tabul').slideDown("slow"); 
     } 

     setTimeout(populate,5000); 
    },"json") 
}; 

populate(); 
0
setTimeout機能により、あなたの setIntervalを変更

これらの2つの違いを理解するには、this stack overflow threadを確認してください。

0

私は何かを誤読しているかもしれませんが、実行するたびに別のsetIntervalを追加するPopulate関数があります。したがって、実行されるたびに間隔ごとにもう1回実行されます。

関連する問題