0

我有一个简单的 html 表单。(一个输入(文本)和一个提交按钮。)。当我输入任何单词并按下提交按钮时,会显示最近的 10 条推文。并且推文列表必须每 15 秒刷新一次。我已经使用 javascript 和 json 成功访问了 twitters 数据库(仅限公共推文)。但刷新部分不能正常工作。
这是我的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 函数。我的问题是:例如,当我输入“chelsea”并按下提交按钮时,项目会显示结果并每 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 回答