首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >每5秒重新加载一次jquery JSON

每5秒重新加载一次jquery JSON
EN

Stack Overflow用户
提问于 2013-04-18 00:36:05
回答 2查看 3.8K关注 0票数 0

我正在尝试创建一个动态列表视图,它每隔5秒重新加载一次更改。它在第一次加载时加载得很好,但是我的setinterval不能正常工作。它每隔5秒更新一次菜单,但即使做了更改,它也不会更新我的菜单?

这是我到目前为止所得到的:

代码语言:javascript
运行
复制
$(document).on('pageshow', function (){
    var userid=1;
    $.mobile.loading('show');
    $.getJSON("http://mypage.com/playermenu.php?callback=?&userid="+userid,          
        function(data){
            var content = []
            $.each(data , function(i,val){

                content.push(val.list);

            });

            $("#games").html(content.join(""));
            $('#games').listview('refresh');

            $.mobile.loading('hide');

        });
});

setInterval(function(){ 
    $.mobile.loading('show');
    $.getJSON("http://mypage.com/playermenu.php?callback=?&userid="+userid,          
        function(data){
            var content = []
            $.each(data , function(i,val){

                content.push(val.list);

            });

            $("#games").html(content.join(""));
            $('#games').listview('refresh');

            $.mobile.loading('hide');

        }); 
}, 5000);

$.mobile.loading(‘$.mobile.loading’);在5秒后开始,但没有到达隐藏(‘hide’);

如有任何帮助,我们将提前表示感谢:-)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-04-18 00:43:56

var user_id位于超时函数的不同作用域中。将超时时间放入文档就绪块中,问题就解决了。此外,考虑重构您的代码,以避免如此多的重复并提高可维护性。例如:

代码语言:javascript
运行
复制
$(document).on('pageshow', function () {
    var userid = 1,
        url = 'http://mypage.com/playermenu.php?callback=?&userid=' + userid,
        callback = function (data) {
            var content = [];
            $.each(data, function (i, val) {
                content.push(val.list);
            });
            $('#games').html(content.join('')).listview('refresh');
            $.mobile.loading('hide');
        },
        fetchData = function () {
            $.mobile.loading('show');
            $.getJSON(url, callback);
        };
    fetchData();
    setInterval(fetchData, 5000);
});
票数 2
EN

Stack Overflow用户

发布于 2013-04-18 00:39:03

我认为您的user_id变量可能在setInterval中的匿名函数中不可见。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16065496

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档