2011-08-20 3 views
0

私は、次のコードを使用してjQueryのを使用してTwitterからの結果取得しています:ツイッター検索の検索結果を取得するタイマーを設定するには?

$(document).ready(function(){ 
var url='http://search.twitter.com/search.json?callback=?&q='; 
var query="test"; 
     $.getJSON(url+query,function(json){ 
      $.each(json.results,function(i,tweet){ 
       $("#results").append('<p><img src="'+tweet.profile_image_url+'" widt="30" height="30" />'+tweet.text+'</p>'); 
     }); 
    }); 
}); 
} 

をしかし、私は、新しいデータを5秒ごとに取得し、DIVにそれを追加したいですか?どうやってやるの?

+0

私の答えは少し – genesis

答えて

2
<div id="results"></div> 
<script> 
function get(){ 
    var url='http://search.twitter.com/search.json?callback=?&q='; 
    var query="test"; 
    $.getJSON(url+query,function(json){ 
      $.each(json.results,function(i,tweet){ 
      $("#results").append('<p><img src="'+tweet.profile_image_url+'" widt="30" height="30" />'+tweet.text+'</p>'); 
      }); 
    }); 
} 
get(); 
setInterval(function(){ 
    get(); 
}, 5000); 
</script> 

demo

+0

これはまだデータを2回だけ取得して停止します。 – jfriend00

+0

今すぐ編集。申し訳ありません – genesis

+0

'setInterval'を使用すると、呼び出しが積み重なるたびにgetJSON呼び出しがすべて遅れて(たとえば、処理に数秒以上かかります)、いくつかの問題があります。 – jfriend00

1

使用setTimeoutあなたgetJSONコール内から、それはあなたがこのようにローカル関数にロジックをくくり出す場合は簡単です:FYI

$(document).ready(function(){ 

    function getTwitterInfo() { 
     var url='http://search.twitter.com/search.json?callback=?&q='; 
     var query="test"; 
     $.getJSON(url+query,function(json){ 
      $.each(json.results,function(i,tweet){ 
       $("#results").append('<p><img src="'+tweet.profile_image_url+'" width="30" height="30" />'+tweet.text+'</p>'); 
      }); 
      setTimeout(getTwitterInfo, 5000); // do it again in 5 seconds 
     }); 
    } 

    getTwitterInfo(); // call it the first time to get it started 
}); 

、あなたものmispellingを持っていますwidthの代わりにwidt