在jQuery的getJSON中获取新结果

时间:2012-05-15 15:21:50

标签: jquery getjson

我正在努力为jQuery.JamCity添加一种提取结果的方法。

现在,它使用getJSON从Last.Fm中提取每个$.each的api数据来解析该数据并将其输出。

我想做到这一点,以便它每隔一分钟检查一次新结果IF data[0]中有一个新项目显示它ELSE,不要做任何事情,因为我不想只是保持最近的歌曲弹出。

我将如何做到这一点?我想我使用setInterval这样的东西,但我不完全了解它是如何工作的。有关如何实现此功能的任何代码示例或想法?

2 个答案:

答案 0 :(得分:1)

这是一些可以执行此操作的起始代码:

var lastSong = null;
var fetch = function(){
   $.getJSON('....', function(data) {
       if(data.length) {
           currentSong = data[0].some_unique_id
           if(lastSong != currentSong){
              //put code here to play song
              lastSong = currentSong;
           }
       }  
       setTimeout(fetch, 1000 * 60);
   });
}
fetch();

答案 1 :(得分:0)

setInterval采用函数和超时间隔(x)(以毫秒为单位),与输入相同。一旦指定了设置间隔,在x毫秒之后将调用该函数。

https://developer.mozilla.org/en/DOM/window.setInterval

这确实是您想要编写此功能的方式。只需创建一个调用getJSON的函数,即可以间隔60000(一分钟)获取数据。

在调用getJSON之后,相应地处理数据以查看结果是否从上次调用函数时发生了变化。