我有一个简单的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秒刷新一次。然后,如果我键入“manchester”并按下提交按钮,项目必须显示仅有“manchester”的结果。但它显示了关于“曼彻斯特”和“切尔西”的结果。它拥有旧的价值观。我怎样才能避免它们以及出了什么问题呢?
答案 0 :(得分: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);
}