1

我有一些代码显示查看特定 twitch.tv 流的人数。它加载一次数字并显示它。如果有人想要更新查看者的数量,那么他们必须刷新页面。有没有办法每隔几秒刷新一次数字,这样人们就不用刷新页面了?代码如下(我要更新的 div id=viewers)

    <html>
    <head>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js" charset="utf-8"></script></head></html>
    <script type="text/javascript" >

    var channelName = "crossgamechat";


    function showViewers(a){
    alert(a.viewers_count);
    }
    $.getJSON("http://api.justin.tv/api/stream/summary.json?channel="+ channelName + "&jsonp=?", function(a){document.getElementById("viewers").innerHTML  += a.viewers_count;}); 
    ;  

    </script>

    <div class="clear"></div>
    <div style="width: 100px;">
     <div id="viewers" style="float: left"></div>
     <div id="blank" style="float: left; width: 5px;">&nbsp;</div>
     <div id="divtext" style="float: left;">Viewers</div>
     <br style="clear: left;"/>
    </div>
    </head></html>
4

3 回答 3

0

您可以在 setInterval 中使用 ajax 调用来执行此操作。向返回要显示的数字的页面发送 get 或 post 请求,然后在该调用成功时更新 span/div 或显示数字的任何内容

这是一个工作小提琴

于 2012-09-13T23:49:00.057 回答
0

您可以使用setInterval以设定的时间间隔运行特定功能。

演示:http: //jsfiddle.net/SO_AMK/tt5NH/

jQuery:

window.setInterval(function() {
    $.getJSON("http://api.justin.tv/api/stream/summary.json?channel=" + channelName + "&jsonp=?", function(data) {
        document.getElementById("viewers").innerHTML = data.viewers_count;
    });
}, 2000);

PS 您的 jQuery 库已过时,并且您有一些语法错误。

于 2012-09-13T23:46:50.103 回答
0

最简单的方法是使用 setInterval 方法

window.setInterval(function () {

    $.getJSON("http://api.justin.tv/api/stream/summary.json?channel="+ channelName + "&jsonp=?", function(a){document.getElementById("viewers").innerHTML  += a.viewers_count;}); 


}, 5000);

https://developer.mozilla.org/en-US/docs/DOM/window.setInterval

于 2012-09-13T23:48:33.430 回答