0

簡単なhtmlフォームがあります。(入力(テキスト)と送信ボタン。)単語を入力して送信ボタンを押すと、最新の10件のツイートが表示されます。また、ツイートリストは15秒ごとに更新する必要があります。javascriptとjsonを使用してtwitterデータベースに正常にアクセスしました(公開ツイートのみ)。ただし、リフレッシュ部分が正常に動作しません。
これが私のjavascriptコードです:

function f()
{
    var words = document.getElementsByTagName("input");
    words = words[0].value;

    json(words);
    setInterval(function(){
        json(words);
    }, 15000);
}

function json(words)
{
    $.getJSON("http://search.twitter.com/search.json?q="+words+"&rpp=10&callback=?", function(data){
        var results = data.results; 
        var tweet ='<div>';

        for(i=0; i<results.length; i++){
            var nickname = results[i].from_user;
            var text = results[i].text;

                tweet+='<b><p>'+nickname+'</p></b><br/>';
                tweet+='<p>'+text+'</p>';
        }
        tweet +='</div>';

        $('#tweets').html(tweet);
    });
}

送信ボタンを押すと、f関数がトリガーされ、json関数が呼び出されます。私の問題は次のとおりです。たとえば、「チェルシー」と入力して送信ボタンを押すと、プロジェクトに結果が表示され、15秒ごとに更新されます。次に、「マンチェスター」と入力して送信ボタンを押すと、プロジェクトは「マンチェスター」のみに関する結果を表示する必要があります。ただし、「マンチェスター」と「チェルシー」に関する結果が表示されます。古い値を保持します。どうすればそれらを回避でき、何が問題になりますか?

4

1 に答える 1

1

以前のsetIntervalをクリアする必要があります

あなたはこのようなことをすることができます:

var intv;
    function f()
    {
        clearInterval(intv);
        var words = document.getElementsByTagName("input");
        words = words[0].value;

        json(words);
        intv= setInterval(function(){
            json(words);
        }, 15000);
    }
于 2013-03-25T19:59:29.067 に答える